// Package mapstruct provides bidirectional conversion between Go structs and maps. // It supports: // - Struct <-> map[string]any // - Struct <-> map[string]string // - Custom type conversion via hooks // - Nested structs and pointers // - Field name mapping via struct tags package mapstruct //import ( // "reflect" //) // //// HookFunc defines a function type for custom field conversion. //type HookFunc func(reflect.Value, reflect.StructField) (any, error) // //// StringHookFunc defines a function type for custom string-to-value conversion. //type StringHookFunc func(string, reflect.StructField) (any, error) // //// Direction indicates the conversion direction. ////type Direction int //// ////const ( //// StructToMap Direction = iota //// MapToStruct ////) // //// commonOptions contains options shared by both conversions. //type commonOptions struct { // TagName string // FieldHooks map[string]HookFunc //} // //// newCommonOptions creates a new commonOptions with defaults. //func newCommonOptions() *commonOptions { // return &commonOptions{ // TagName: "json", // } //}