package nmapper import "git.noahlan.cn/noahlan/ntool/nmapper/wrapper" var defaultMapper *MapperObject type Option func(m *MapperObject) func init() { defaultMapper = NewMapper() } // SetCustomTag 为默认的Mapper设置自定义tag func SetCustomTag(tag string) { defaultMapper.customTagName = tag } // SetTypeCheck 为默认的Mapper设置开启类型检查 func SetTypeCheck(enabled bool) { defaultMapper.enabledTypeChecking = enabled } // SetTypeWrapper 为默认的Mapper设置类型转换器 func SetTypeWrapper(wrappers ...wrapper.TypeWrapper) { defaultMapper.SetTypeWrapper(wrappers...) } // WithCustomTag 设置自定义 tag func WithCustomTag(tag string) Option { return func(m *MapperObject) { m.customTagName = tag } } // WithTypeCheck 开启类型安全 func WithTypeCheck() Option { return func(m *MapperObject) { m.enabledTypeChecking = true } } // WithTypeWrapper 设置类型转换器 func WithTypeWrapper(wrappers ...wrapper.TypeWrapper) Option { return func(m *MapperObject) { m.SetTypeWrapper(wrappers...) } } func Mapper(dst any, src any) error { return defaultMapper.Mapper(dst, src) } func ParseMap(dst any, src map[string]any) error { return defaultMapper.ParseMap(dst, src) } func ParseStrMap(dst any, src map[string]string) error { defaultMapper.SetTypeWrapper(wrapper.StrWrapper()...) defer defaultMapper.SetTypeWrapper() return defaultMapper.ParseStrMap(dst, src) }