middleware

package module
v0.0.0-...-9892455 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2017 License: MIT Imports: 6 Imported by: 9

README

Middleware GoDoc Status

Middleware is a middleware assistant for I/O operations

Usage

package main

import (
	"bytes"
	"errors"
	"fmt"
	"io"

	"github.com/itsmontoya/middleware"
)

func main() {
	var (
		rdr io.Reader
		val string
		err error

		mws = middleware.NewMWs(middleware.GZipMW{})
	)

	if rdr, err = write(mws, "Hello"); err != nil {
		fmt.Println("Error:", err)
		return
	}

	if val, err = read(mws, rdr); err != nil {
		fmt.Println("Error:", err)
		return
	}

	fmt.Println(val)
}

func write(mws *middleware.MWs, val string) (out io.Reader, err error) {
	var (
		wtr *middleware.Writer
		buf = bytes.NewBuffer(nil)
	)

	if wtr, err = mws.Writer(buf); err != nil {
		err = errors.New("Error getting middleware Writer:" + err.Error())
		return
	}

	if _, err = wtr.Write([]byte(val)); err != nil {
		err = errors.New("Error writing to middleware Writer:" + err.Error())
		return
	}

	if err = wtr.Close(); err != nil {
		err = errors.New("Error closing middleware Writer:" + err.Error())
		return
	}

	out = buf
	return
}

func read(mws *middleware.MWs, in io.Reader) (val string, err error) {
	var (
		rdr *middleware.Reader
		buf = bytes.NewBuffer(nil)
	)

	if rdr, err = mws.Reader(in); err != nil {
		err = errors.New("Error getting middleware Reader:" + err.Error())
		return
	}

	if _, err = io.Copy(buf, rdr); err != nil {
		err = errors.New("Error reading from middleware Reader:" + err.Error())
		return
	}

	val = buf.String()
	return
}

Documentation

Index

Constants

View Source
const Base64Name = "encoding/base64"

Base64Name is the name constant for the Base64 middleware

Variables

This section is empty.

Functions

This section is empty.

Types

type Base64MW

type Base64MW struct {
}

Base64MW is a base64 middleware Note: This should always be the LAST of the modifying middleware

func (Base64MW) Name

func (b Base64MW) Name() string

Name returns the middleware name

func (Base64MW) Reader

func (b Base64MW) Reader(r io.Reader) (rc io.ReadCloser, err error)

Reader returns a new gzip reader

func (Base64MW) Writer

func (b Base64MW) Writer(w io.Writer) (io.WriteCloser, error)

Writer returns a new gzip writer

type CryptyMW

type CryptyMW struct {
	// contains filtered or unexported fields
}

CryptyMW handles encryption

func NewCryptyMW

func NewCryptyMW(key, iv []byte) *CryptyMW

NewCryptyMW returns a new Crypty middleware

func (*CryptyMW) Name

func (c *CryptyMW) Name() string

Name returns the middleware name

func (*CryptyMW) Reader

func (c *CryptyMW) Reader(r io.Reader) (rc io.ReadCloser, err error)

Reader returns a new gzip reader

func (*CryptyMW) Writer

func (c *CryptyMW) Writer(w io.Writer) (io.WriteCloser, error)

Writer returns a new gzip writer

type GZipMW

type GZipMW struct {
}

GZipMW handles gzipping

func (GZipMW) Name

func (g GZipMW) Name() string

Name returns the middleware name

func (GZipMW) Reader

func (g GZipMW) Reader(r io.Reader) (rc io.ReadCloser, err error)

Reader returns a new gzip reader

func (GZipMW) Writer

func (g GZipMW) Writer(w io.Writer) (io.WriteCloser, error)

Writer returns a new gzip writer

type MWs

type MWs struct {
	// contains filtered or unexported fields
}

MWs manages middlewares

func NewMWs

func NewMWs(mws ...Middleware) *MWs

NewMWs returns a new MWs

func (*MWs) List

func (m *MWs) List() (l []string)

List will return a list of the middlewares contained with an instance of MWs

func (*MWs) Reader

func (m *MWs) Reader(r io.Reader) (out *Reader, err error)

Reader returns a new middleware reader

func (*MWs) Writer

func (m *MWs) Writer(w io.Writer) (out *Writer, err error)

Writer returns a new middleware writer

type Middleware

type Middleware interface {
	Name() string
	Writer(w io.Writer) (io.WriteCloser, error)
	Reader(r io.Reader) (io.ReadCloser, error)
}

Middleware is the interface that defines an encoder/decoder chain.

type Reader

type Reader struct {
	// contains filtered or unexported fields
}

Reader is the middleware readr interface

func NewReader

func NewReader(r io.Reader, mws []Middleware) (out *Reader, err error)

NewReader returns a new middleware reader

func (*Reader) Close

func (r *Reader) Close() (err error)

Close will close this readr (and it's underlying middleware readrs)

func (*Reader) Read

func (r *Reader) Read(b []byte) (n int, err error)

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

Writer is the middleware writer interface

func NewWriter

func NewWriter(w io.Writer, mws []Middleware) (out *Writer, err error)

NewWriter returns a new middleware writer

func (*Writer) Close

func (w *Writer) Close() (err error)

Close will close this writer (and it's underlying middleware writers)

func (*Writer) Write

func (w *Writer) Write(b []byte) (n int, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL