1 Star 0 Fork 0

hh / iris

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
conditional.go 996 Bytes
一键复制 编辑 原始数据 按行查看 历史
package rule
import (
"github.com/kataras/iris/context"
)
// Conditional is a Rule witch adds a predicate in order to its methods to execute
type conditionalRule struct {
claimPredicate func() bool
validPredicate func() bool
}
var emptyConditionalPredicate = func() bool {
return true
}
var _ Rule = &conditionalRule{}
// Conditional returns a new rule witch has conditionals
func Conditional(claimPredicate func() bool, validPredicate func() bool) Rule {
if claimPredicate == nil {
claimPredicate = emptyConditionalPredicate
}
if validPredicate == nil {
validPredicate = emptyConditionalPredicate
}
return &conditionalRule{
claimPredicate: claimPredicate,
validPredicate: validPredicate,
}
}
// Claim validator
func (c *conditionalRule) Claim(ctx context.Context) bool {
if !c.claimPredicate() {
return false
}
return true
}
// Valid validator
func (c *conditionalRule) Valid(ctx context.Context) bool {
if !c.validPredicate() {
return false
}
return true
}
1
https://gitee.com/w1229748769/iris.git
git@gitee.com:w1229748769/iris.git
w1229748769
iris
iris
v11.1.1

搜索帮助