Documentation ¶
Index ¶
- Variables
- func ContextWithTransformerMgr(ctx context.Context, mgr TransformerMgr) context.Context
- func EachParameter(ctx context.Context, tpe typesx.Type, each func(p *Parameter) bool)
- func EachRequestParameter(ctx context.Context, tpe typesx.Type, each func(rp *RequestParameter)) error
- func GroupedParametersSetFromContext(ctx context.Context) *sync.Map
- func MIMEHeader(headers ...textproto.MIMEHeader) textproto.MIMEHeader
- func MustNewFileHeader(fieldName string, filename string, r io.Reader) *multipart.FileHeader
- func NewFileHeader(fieldName string, filename string, r io.Reader) (*multipart.FileHeader, error)
- func NewValidator(ctx context.Context, fieldType typex.Type, tags map[string]Tag, omitempty bool, ...) (validator.Validator, error)
- func ParamsFromMap(m map[string]string) httprouter.Params
- func ParseTags(tag string) map[string]Tag
- func WithGroupedParametersSet(ctx context.Context, m *sync.Map) context.Context
- type CanInterface
- type CanNextReader
- type CanNextWriter
- type CanString
- type CommonTransformOption
- type FileHeaderReader
- type FlattenParams
- type FormPartWriter
- type GroupedParameters
- type HeaderWriter
- type MayValidator
- type Parameter
- type ParameterValue
- type PathWalker
- type PathnamePattern
- type RequestParameter
- type StringBuilders
- type StringReader
- type StringReaders
- type Tag
- type Transformer
- type TransformerAndOption
- type TransformerFactory
- type TransformerHTMLText
- func (TransformerHTMLText) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, ...) error
- func (t *TransformerHTMLText) EncodeTo(ctx context.Context, w io.Writer, v interface{}) error
- func (TransformerHTMLText) NamedByTag() string
- func (TransformerHTMLText) Names() []string
- func (TransformerHTMLText) New(context.Context, typesutil.Type) (Transformer, error)
- func (t *TransformerHTMLText) String() string
- type TransformerJSON
- func (TransformerJSON) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, ...) error
- func (transformer *TransformerJSON) EncodeTo(ctx context.Context, w io.Writer, v interface{}) error
- func (TransformerJSON) NamedByTag() string
- func (TransformerJSON) Names() []string
- func (TransformerJSON) New(context.Context, typesutil.Type) (Transformer, error)
- func (transformer *TransformerJSON) String() string
- type TransformerMgr
- type TransformerMultipart
- func (transformer *TransformerMultipart) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, ...) error
- func (transformer *TransformerMultipart) EncodeTo(ctx context.Context, w io.Writer, v interface{}) error
- func (TransformerMultipart) NamedByTag() string
- func (TransformerMultipart) Names() []string
- func (TransformerMultipart) New(ctx context.Context, typ typesutil.Type) (Transformer, error)
- func (transformer *TransformerMultipart) String() string
- type TransformerOctetStream
- func (TransformerOctetStream) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, ...) error
- func (t *TransformerOctetStream) EncodeTo(ctx context.Context, w io.Writer, v interface{}) error
- func (TransformerOctetStream) Names() []string
- func (TransformerOctetStream) New(context.Context, typesx.Type) (Transformer, error)
- func (t *TransformerOctetStream) String() string
- type TransformerOption
- type TransformerPlainText
- func (t *TransformerPlainText) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, ...) error
- func (t *TransformerPlainText) EncodeTo(ctx context.Context, w io.Writer, v interface{}) error
- func (TransformerPlainText) Names() []string
- func (TransformerPlainText) New(context.Context, typesx.Type) (Transformer, error)
- func (t *TransformerPlainText) String() string
- type TransformerSuper
- type TransformerURLEncoded
- func (transformer *TransformerURLEncoded) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, ...) error
- func (transformer *TransformerURLEncoded) EncodeTo(ctx context.Context, w io.Writer, v interface{}) error
- func (TransformerURLEncoded) NamedByTag() string
- func (TransformerURLEncoded) Names() []string
- func (TransformerURLEncoded) New(ctx context.Context, typ typesutil.Type) (Transformer, error)
- type WithNamedByTag
- type XMLTransformer
- func (XMLTransformer) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, ...) error
- func (t *XMLTransformer) EncodeTo(ctx context.Context, w io.Writer, v interface{}) error
- func (XMLTransformer) NamedByTag() string
- func (XMLTransformer) Names() []string
- func (XMLTransformer) New(context.Context, typesutil.Type) (Transformer, error)
- func (t *XMLTransformer) String() string
Constants ¶
This section is empty.
Variables ¶
View Source
var TransformerMgrDefault = &TransformerFactory{}
Functions ¶
func ContextWithTransformerMgr ¶
func ContextWithTransformerMgr(ctx context.Context, mgr TransformerMgr) context.Context
func EachParameter ¶
func EachRequestParameter ¶
func MIMEHeader ¶
func MIMEHeader(headers ...textproto.MIMEHeader) textproto.MIMEHeader
func MustNewFileHeader ¶
func NewFileHeader ¶
func NewValidator ¶
func ParamsFromMap ¶
func ParamsFromMap(m map[string]string) httprouter.Params
Types ¶
type CanInterface ¶
type CanInterface interface {
Interface() interface{}
}
type CanNextReader ¶
type CanNextWriter ¶
type CommonTransformOption ¶
type FileHeaderReader ¶
type FileHeaderReader struct {
// contains filtered or unexported fields
}
func (*FileHeaderReader) Interface ¶
func (f *FileHeaderReader) Interface() interface{}
type FlattenParams ¶
type FlattenParams struct {
Parameters []RequestParameter
}
func (*FlattenParams) CollectParams ¶
func (FlattenParams) NewValidator ¶
func (FlattenParams) String ¶
func (FlattenParams) String() string
func (*FlattenParams) Validate ¶
func (params *FlattenParams) Validate(v interface{}) error
type FormPartWriter ¶
type FormPartWriter struct {
// contains filtered or unexported fields
}
func NewFormPartWriter ¶
func NewFormPartWriter(createPartWriter func(header textproto.MIMEHeader) (io.Writer, error)) *FormPartWriter
func (*FormPartWriter) Header ¶
func (w *FormPartWriter) Header() http.Header
func (*FormPartWriter) NextWriter ¶
func (w *FormPartWriter) NextWriter() io.Writer
type GroupedParameters ¶
func CollectGroupedParameters ¶
func CollectGroupedParameters(ctx context.Context, tpe typesx.Type) GroupedParameters
type HeaderWriter ¶
type HeaderWriter interface { httpx.WithHeader io.Writer }
func WriterWithHeader ¶
func WriterWithHeader(w io.Writer, header http.Header) HeaderWriter
type MayValidator ¶
type Parameter ¶
type ParameterValue ¶
type PathWalker ¶
type PathWalker struct {
// contains filtered or unexported fields
}
func (*PathWalker) Enter ¶
func (pw *PathWalker) Enter(i interface{})
func (*PathWalker) Exit ¶
func (pw *PathWalker) Exit()
func (*PathWalker) Paths ¶
func (pw *PathWalker) Paths() []interface{}
func (*PathWalker) String ¶
func (pw *PathWalker) String() string
type PathnamePattern ¶
type PathnamePattern struct {
// contains filtered or unexported fields
}
func NewPathnamePattern ¶
func NewPathnamePattern(p string) *PathnamePattern
func (*PathnamePattern) Parse ¶
func (pattern *PathnamePattern) Parse(pathname string) (params httprouter.Params, err error)
func (*PathnamePattern) String ¶
func (pattern *PathnamePattern) String() string
func (*PathnamePattern) Stringify ¶
func (pattern *PathnamePattern) Stringify(params httprouter.Params) string
type RequestParameter ¶
type RequestParameter struct { Parameter TransformerOption TransformerOption Transformer Transformer Validator validator.Validator }
type StringBuilders ¶
type StringBuilders struct {
// contains filtered or unexported fields
}
func NewStringBuilders ¶
func NewStringBuilders() *StringBuilders
func (*StringBuilders) NextWriter ¶
func (v *StringBuilders) NextWriter() io.Writer
func (*StringBuilders) SetN ¶
func (v *StringBuilders) SetN(n int)
func (*StringBuilders) StringSlice ¶
func (v *StringBuilders) StringSlice() []string
type StringReader ¶
type StringReader struct {
// contains filtered or unexported fields
}
func NewStringReader ¶
func NewStringReader(v string) *StringReader
func (*StringReader) Interface ¶
func (r *StringReader) Interface() interface{}
func (*StringReader) String ¶
func (r *StringReader) String() string
type StringReaders ¶
type StringReaders struct {
// contains filtered or unexported fields
}
func NewFileHeaderReaders ¶
func NewFileHeaderReaders(fileHeaders []*multipart.FileHeader) *StringReaders
func NewStringReaders ¶
func NewStringReaders(values []string) *StringReaders
func (*StringReaders) Interface ¶
func (v *StringReaders) Interface() interface{}
func (*StringReaders) Len ¶
func (v *StringReaders) Len() int
func (*StringReaders) NextReader ¶
func (v *StringReaders) NextReader() io.Reader
type Transformer ¶
type Transformer interface { // name or alias of transformer // prefer using some keyword about content-type // first must validate content-type Names() []string // create transformer new transformer instance by type // in this step will to check transformer is valid for type New(context.Context, typesx.Type) (Transformer, error) // EncodeTo // if w implement interface { Header() http.Header } // Content-Type will be set EncodeTo(ctx context.Context, w io.Writer, v interface{}) (err error) // DecodeFrom DecodeFrom(ctx context.Context, r io.Reader, v interface{}, headers ...textproto.MIMEHeader) error }
func NewTransformer ¶
func NewTransformer(ctx context.Context, tpe typesx.Type, opt TransformerOption) (Transformer, error)
type TransformerAndOption ¶
type TransformerAndOption struct { Transformer Option TransformerOption }
type TransformerFactory ¶
type TransformerFactory struct {
// contains filtered or unexported fields
}
func (*TransformerFactory) NewTransformer ¶
func (c *TransformerFactory) NewTransformer(ctx context.Context, typ typesx.Type, opt TransformerOption) (Transformer, error)
func (*TransformerFactory) Register ¶
func (c *TransformerFactory) Register(transformers ...Transformer)
type TransformerHTMLText ¶
type TransformerHTMLText struct{}
func (TransformerHTMLText) DecodeFrom ¶
func (TransformerHTMLText) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, headers ...textproto.MIMEHeader) error
func (TransformerHTMLText) NamedByTag ¶
func (TransformerHTMLText) NamedByTag() string
func (TransformerHTMLText) Names ¶
func (TransformerHTMLText) Names() []string
func (TransformerHTMLText) New ¶
func (TransformerHTMLText) New(context.Context, typesutil.Type) (Transformer, error)
func (*TransformerHTMLText) String ¶
func (t *TransformerHTMLText) String() string
type TransformerJSON ¶
type TransformerJSON struct{}
func (TransformerJSON) DecodeFrom ¶
func (TransformerJSON) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, headers ...textproto.MIMEHeader) error
func (TransformerJSON) NamedByTag ¶
func (TransformerJSON) NamedByTag() string
func (TransformerJSON) Names ¶
func (TransformerJSON) Names() []string
func (TransformerJSON) New ¶
func (TransformerJSON) New(context.Context, typesutil.Type) (Transformer, error)
func (*TransformerJSON) String ¶
func (transformer *TransformerJSON) String() string
type TransformerMgr ¶
type TransformerMgr interface {
NewTransformer(context.Context, typesx.Type, TransformerOption) (Transformer, error)
}
func TransformerMgrFromContext ¶
func TransformerMgrFromContext(ctx context.Context) TransformerMgr
type TransformerMultipart ¶
type TransformerMultipart struct {
*FlattenParams
}
TransformerMultipart for multipart/form-data
func (*TransformerMultipart) DecodeFrom ¶
func (transformer *TransformerMultipart) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, headers ...textproto.MIMEHeader) error
func (TransformerMultipart) NamedByTag ¶
func (TransformerMultipart) NamedByTag() string
func (TransformerMultipart) Names ¶
func (TransformerMultipart) Names() []string
func (TransformerMultipart) New ¶
func (TransformerMultipart) New(ctx context.Context, typ typesutil.Type) (Transformer, error)
func (*TransformerMultipart) String ¶
func (transformer *TransformerMultipart) String() string
type TransformerOctetStream ¶
type TransformerOctetStream struct{}
func (TransformerOctetStream) DecodeFrom ¶
func (TransformerOctetStream) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, headers ...textproto.MIMEHeader) error
func (TransformerOctetStream) Names ¶
func (TransformerOctetStream) Names() []string
func (TransformerOctetStream) New ¶
func (TransformerOctetStream) New(context.Context, typesx.Type) (Transformer, error)
func (*TransformerOctetStream) String ¶
func (t *TransformerOctetStream) String() string
type TransformerOption ¶
type TransformerOption struct { Name string MIME string CommonTransformOption }
func (TransformerOption) String ¶
func (op TransformerOption) String() string
type TransformerPlainText ¶
type TransformerPlainText struct{}
func (*TransformerPlainText) DecodeFrom ¶
func (t *TransformerPlainText) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, headers ...textproto.MIMEHeader) error
func (TransformerPlainText) Names ¶
func (TransformerPlainText) Names() []string
func (TransformerPlainText) New ¶
func (TransformerPlainText) New(context.Context, typesx.Type) (Transformer, error)
func (*TransformerPlainText) String ¶
func (t *TransformerPlainText) String() string
type TransformerSuper ¶
type TransformerSuper struct { CommonTransformOption // contains filtered or unexported fields }
func NewTransformerSuper ¶
func NewTransformerSuper(transformer Transformer, opt *CommonTransformOption) *TransformerSuper
func (*TransformerSuper) DecodeFrom ¶
type TransformerURLEncoded ¶
type TransformerURLEncoded struct {
*FlattenParams
}
TransformerURLEncoded for application/x-www-form-urlencoded
var s = struct { Username string `name:"username"` Nickname string `name:"username,omitempty"` Tags []string `name:"tag"` }{ Username: "name", Tags: []string{"1","2"}, }
will transform to
username=name&tag=1&tag=2
func (*TransformerURLEncoded) DecodeFrom ¶
func (transformer *TransformerURLEncoded) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, headers ...textproto.MIMEHeader) error
func (TransformerURLEncoded) NamedByTag ¶
func (TransformerURLEncoded) NamedByTag() string
func (TransformerURLEncoded) Names ¶
func (TransformerURLEncoded) Names() []string
func (TransformerURLEncoded) New ¶
func (TransformerURLEncoded) New(ctx context.Context, typ typesutil.Type) (Transformer, error)
type WithNamedByTag ¶
type WithNamedByTag interface {
NamedByTag() string
}
type XMLTransformer ¶
type XMLTransformer struct{}
func (XMLTransformer) DecodeFrom ¶
func (XMLTransformer) DecodeFrom(ctx context.Context, r io.Reader, v interface{}, headers ...textproto.MIMEHeader) error
func (XMLTransformer) NamedByTag ¶
func (XMLTransformer) NamedByTag() string
func (XMLTransformer) Names ¶
func (XMLTransformer) Names() []string
func (XMLTransformer) New ¶
func (XMLTransformer) New(context.Context, typesutil.Type) (Transformer, error)
func (*XMLTransformer) String ¶
func (t *XMLTransformer) String() string
Source Files ¶
- flatten_params.go
- io.go
- path_walker.go
- pathname_pattern.go
- request_parameter.go
- transformer.go
- transformer_html.go
- transformer_json.go
- transformer_multipart.go
- transformer_octet_stream.go
- transformer_plain_text.go
- transformer_super.go
- transformer_urlencoded.go
- transformer_xml.go
- utils.go
- utils_parameters.go
- validator.go
Click to show internal directories.
Click to hide internal directories.