Versions in this module Expand all Collapse all v0 v0.0.2 Jul 25, 2025 Changes in this version + const CommaDelimeter + const ContentEncodingUTF8 + const ContentTypeApplicationJSON + const ContentTypeDelimiter + const CookieTagBinding + const DefaultKeyValueTagDelimiter + const DefaultValueSubTagPrefix + const DefaultValueSubTagPrefixWithKVDelimiter + const HTTPRequestParserName + const HeaderTagBinding + const JSONByteSliceParserName + const JSONStringParserName + const JsonTagBinding + const MapValueTagBinding + const OmitEmptyBindingModifier + const OmitErrorBindingModifier + const OmitNilBindingModifier + const ParseTagPrefix + const QueryTagBinding + const StringAnyMapParserName + const StringMapParserName + var ErrAllBindingsFailedNoDefault = fmt.Errorf("All bindings failed with no default value for field") + var ErrBindingCacheNilEntry = errors.New("binding cache nil entry provided") + var ErrBindingCacheNotInitialized = errors.New("binding cache not initialized") + var ErrEmptyBindingIdentifier = errors.New("binding identifier cannot be empty") + var ErrEmptyTagValue = errors.New("tag value cannot be empty for non-string types") + var ErrFailedToBuildSubChain = fmt.Errorf("failed to build sub-chain for field") + var ErrFailedToParseTag = fmt.Errorf("failed to parse tag for field") + var ErrInvalidBindingInfoFormat = errors.New("invalid binding info format") + var ErrInvalidBindingTagFormat = errors.New("invalid binding tag format") + var ErrInvalidParseExecutionChainType = errors.New("improper type passed for this parse execution chain") + var ErrMultipleParsersAvailable = errors.New(...) + var ErrNilParseChain = fmt.Errorf("parse chain is empty for type") + var ErrNoFieldSourcesInTag = errors.New("no fields sources defined in tag but attempted to validate field") + var ErrNoParseExecutionChain = errors.New("no parse execution chain found for this type") + var ErrNoParseTagInField = errors.New("no parse tag found in field") + var ErrNoParser = errors.New("no built-in or registered parser found for this type") + var ErrNoParserBuiltin = errors.New("no built-in parser found for this type") + var ErrNoParserRegistered = errors.New("no registered parser found for this type") + var ErrNoStepBindings = fmt.Errorf("no bindings found for field") + var ErrParserAlreadyRegistered = errors.New("a parser with this name for this source-type is already registered") + var ErrParserNotFound = errors.New("specified parser not found for this source type") + var ErrUnallowedBindingModifier = errors.New("binding modifier is not allowed") + var ErrUnallowedBindingName = errors.New("binding name is not allowed") + var HTTPRequestType reflect.Type + var JSONByteSliceType reflect.Type + var StringMapAnyType reflect.Type + var StringMapType reflect.Type + var StringType reflect.Type + var TimeType reflect.Type + var UUIDType reflect.Type + func Invalidate(dest Validatable) error + func Parse(source any, dest any, validate bool) error + func ParseTypeErasedPointer[S any](source any, dest any, parse func(source *S, dest any) error) error + func ParseTypeErasedSlice[S any](source any, dest any, parse func(source []S, dest any) error) error + func RegisterParser(parser Parser) error + type BaseMBParser struct + BCache *BindingCache[S, C] + BMgr BindingManager[S, C] + PCMgr *PCManager[S] + func NewBaseMBParser[S any, C any](bMgr BindingManager[S, C], opts BaseMBParserOpts) *BaseMBParser[S, C] + func (base *BaseMBParser[S, C]) Parse(source any, dest any) error + func (base *BaseMBParser[S, C]) SourceType() reflect.Type + type BaseMBParserOpts struct + PCMOpts PCManagerOpts + UseCache bool + type Binding struct + Identifier string + Modifiers BindingModifiers + Name string + type BindingCache struct + func NewBindingCache[S any, C any]() *BindingCache[S, C] + func (bc *BindingCache[S, C]) Clear() + func (bc *BindingCache[S, C]) Delete(source *S) + func (bc *BindingCache[S, C]) Get(source *S) (*CacheEntry[C], bool) + func (bc *BindingCache[S, C]) GetOrCreate(source *S, factory func() C) *CacheEntry[C] + type BindingHandlerCachedFunc func(source *S, entry *CacheEntry[C], binding Binding) BindingResult + type BindingHandlerFunc func(source *S, binding Binding) BindingResult + type BindingManager interface + BindingHandler func(source *Source, binding Binding) BindingResult + BindingHandlerCached func(source *Source, entry *CacheEntry[Cached], binding Binding) BindingResult + NewCached func() Cached + type BindingModifiers struct + Custom map[string]bool + OmitEmpty bool + OmitError bool + OmitNil bool + Required bool + type BindingOpts struct + AllowedBindingNames []string + CustomBindingModifiers []string + type BindingResult struct + Error error + Found bool + Value any + func BindingResultError(err error) BindingResult + func BindingResultNotFound() BindingResult + func BindingResultValue(value any) BindingResult + type BindingTag struct + Identifier string + Modifiers []string + Name string + type CacheEntry struct + func (ce *CacheEntry[C]) GetData() C + func (ce *CacheEntry[C]) ReadData(fn func(data C)) + func (ce *CacheEntry[C]) WriteData(fn func(data *C)) + type CustomTag struct + Name string + Value string + type DefaultTag struct + Value string + type HTTPBindingManager struct + func NewHTTPBindingManager() *HTTPBindingManager + func (mgr *HTTPBindingManager) BindingHandler(source *http.Request, binding Binding) BindingResult + func (mgr *HTTPBindingManager) BindingHandlerCached(source *http.Request, entry *CacheEntry[HTTPRequestOnce], binding Binding) BindingResult + func (mgr *HTTPBindingManager) CookieValue(source *http.Request, entry *CacheEntry[HTTPRequestOnce], key string) BindingResult + func (mgr *HTTPBindingManager) HeaderValue(source *http.Request, entry *CacheEntry[HTTPRequestOnce], key string) BindingResult + func (mgr *HTTPBindingManager) JSONValue(source *http.Request, entry *CacheEntry[HTTPRequestOnce], key string) BindingResult + func (mgr *HTTPBindingManager) NewCached() HTTPRequestOnce + func (mgr *HTTPBindingManager) QueryValue(source *http.Request, entry *CacheEntry[HTTPRequestOnce], key string) BindingResult + type HTTPRequestOnce struct + func NewHTTPRequestOnce() HTTPRequestOnce + type HTTPRequestParser struct + func NewHTTPRequestParser() *HTTPRequestParser + func (hp *HTTPRequestParser) Name() string + type JSONByteSliceSourceParser struct + func NewJsonByteSliceSourceParser() *JSONByteSliceSourceParser + func (jbsp *JSONByteSliceSourceParser) Name() string + func (jbsp *JSONByteSliceSourceParser) Parse(source any, dest any) error + func (jbsp *JSONByteSliceSourceParser) SourceType() reflect.Type + type JSONStringSourceParser struct + func NewJSONStringSourceParser() *JSONStringSourceParser + func (jssp *JSONStringSourceParser) Name() string + func (jssp *JSONStringSourceParser) Parse(source any, dest any) error + func (jssp *JSONStringSourceParser) SourceType() reflect.Type + type PCManager struct + CMutex sync.RWMutex + Chains map[reflect.Type]*ParseChain[S] + Handler BindingHandlerFunc[S] + Opts PCManagerOpts + func NewPCManager[S any](handler BindingHandlerFunc[S], opts PCManagerOpts) *PCManager[S] + func (cman *PCManager[S]) GetParseChain(typ reflect.Type) (*ParseChain[S], error) + func (cman *PCManager[S]) NewParseChain(typ reflect.Type) (*ParseChain[S], error) + func (cman *PCManager[S]) NewParseStep(field reflect.StructField, index int) (*ParseStep[S], error) + type PCManagerOpts struct + type ParseChain struct + Handler BindingHandlerFunc[S] + Head *ParseStep[S] + StructType reflect.Type + func (chain *ParseChain[S]) Execute(source *S, dest any) error + type ParseStep struct + Bindings []Binding + DefaultValue string + FieldIndex int + FieldName string + IsStruct bool + Next *ParseStep[S] + ShouldRecurse bool + SubChain *ParseChain[S] + type ParseTag struct + func DecodeParseTagV2(field reflect.StructField, opts ParseTagOpts) (ParseTag, error) + type ParseTagOpts struct + AllowedTagOptionals []string + type Parser interface + Name func() string + Parse func(source any, dest any) error + SourceType func() reflect.Type + func GetParser(source any) (Parser, error) + func GetParserByName(source any, parserName string) (Parser, error) + type ParserRegistry struct + func NewParserRegistry(opts ParserRegistryOpts) (*ParserRegistry, error) + func (reg *ParserRegistry) Invalidate(dest Validatable) error + func (reg *ParserRegistry) Parse(source any, dest any, validate bool) error + func (reg *ParserRegistry) Register(parser Parser) error + func (reg *ParserRegistry) WithParser(parserName string) *ParserRegistryContext + type ParserRegistryContext struct + func WithParser(parserName string) *ParserRegistryContext + func (regCtx *ParserRegistryContext) Parse(source any, dest any, validate bool) error + type ParserRegistryOpts struct + ExcludeDefaults bool + Parsers []Parser + type RecursiveTag struct + Enabled bool + type Validatable interface + Validate func() error v0.0.1 Jul 16, 2025