Documentation ¶
Overview ¶
Package filter 过滤器
包含了数据验证和数据修正两个功能。
各个类型之间的关系如下:
|---[Sanitize] | [Filter]---[Builder]----[Rule] | |---[Validator]
Sanitize 表示对数据的修正,其函数原型为:func(*T) 指针传入数据,实现方可以对指向的数据进行修改,可由 S、SS 或 MS 转换为 Rule;
Validator 负责验证数据,其原型为:func(T)bool 返回值表示是否符合当前函数的需求,可由 V、SV 或 MV 转换为 Rule;
webfilter 实现了一些常用的过滤器方法。
Index ¶
- func Test(exitAtError bool, p *localeutil.Printer, f ...Filter) map[string]string
- type Builder
- type Filter
- type Rule
- func MS[M ~map[K]V, K comparable, V any](v func(*V)) Rule[M]
- func MV[M ~map[K]V, K comparable, V any](v func(V) bool, msg localeutil.Stringer) Rule[M]
- func S[T any](f ...func(*T)) Rule[T]
- func SS[S ~[]T, T any](f ...func(*T)) Rule[S]
- func SV[S ~[]T, T any](v func(T) bool, msg localeutil.Stringer) Rule[S]
- func V[T any](f func(T) bool, msg localeutil.Stringer) Rule[T]
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Builder ¶ added in v0.88.0
Builder 生成类型 T 的过滤器
name 字段名,对于切片等类型会返回带下标的字段名; v 必须是指针类型,否则无法对其内容进行修改;
当前函数的主要作用是将一个泛型函数转换为非泛型函数 Filter。
type Filter ¶ added in v0.88.0
type Filter = func() (string, localeutil.Stringer)
Filter 过滤器函数类型
当前方法由 Builder 生成,验证的数据也由其提供, 但是只有在调用当前方法时才真正对数据进行验证。 如果符合要求返回 "", nil,否则返回字段名和错误信息。
type Rule ¶ added in v0.88.0
type Rule[T any] func(string, *T) (string, localeutil.Stringer)
Rule 对类型 T 的验证规则
传递参数为字段名与需要验证的值; 返回字段名和错误信息,如果验证成功,则返回两个空值;
func MS ¶ added in v0.88.0
func MS[M ~map[K]V, K comparable, V any](v func(*V)) Rule[M]
SS 将一组修正函数封装为 Rule 用以验证 map 的元素
func MV ¶ added in v0.88.0
func MV[M ~map[K]V, K comparable, V any](v func(V) bool, msg localeutil.Stringer) Rule[M]
MV 将验器封装为 Rule 用以验证 map
v 用于验证键名和键值,两者可以有一个是空值,表示不需要验证,但不能都为空; msg 表示验证出错时的错误提示;
Click to show internal directories.
Click to hide internal directories.