Documentation
¶
Index ¶
- func Execute(kl *ast.KnowledgeLibrary, dataCtx ast.IDataContext, name, version string) (*ast.KnowledgeBase, error)
- func NewKnowledgeLibrary() *ast.KnowledgeLibrary
- func RegisterRule(kl *ast.KnowledgeLibrary, jsonBytes []byte, name, version string) error
- func RemoveRuleEntry(kl *ast.KnowledgeLibrary, ruleName, name string, version string)
- type ArithmeticOperator
- type LogicalOperator
- type Operator
- type Then
- func (build *Then) AddCall(methodName string, parameter ...*Operator) *Then
- func (build *Then) AddSetBand(field string, lo1, lo2 *Operator) *Then
- func (build *Then) AddSetBor(field string, lo1, lo2 *Operator) *Then
- func (build *Then) AddSetDiv(field string, lo1, lo2 *Operator) *Then
- func (build *Then) AddSetMinus(field string, lo1, lo2 *Operator) *Then
- func (build *Then) AddSetMod(field string, lo1, lo2 *Operator) *Then
- func (build *Then) AddSetMul(field string, lo1, lo2 *Operator) *Then
- func (build *Then) AddSetPlus(field string, lo1, lo2 *Operator) *Then
- func (build *Then) AddSetValueConst(field string, lo1 any) *Then
- func (build *Then) AddSetValueObj(field string, lo1 string) *Then
- func (build *Then) Build() []any
- type ThenCall
- type ThenSet
- type Tx
- type When
- func (build *When) AddEq(lo1, lo2 *Operator) *When
- func (build *When) AddGt(lo1, lo2 *Operator) *When
- func (build *When) AddGte(lo1, lo2 *Operator) *When
- func (build *When) AddLogicalOperator(lo *LogicalOperator) *When
- func (build *When) AddLt(lo1, lo2 *Operator) *When
- func (build *When) AddLte(lo1, lo2 *Operator) *When
- func (build *When) AddNot(lo1, lo2 *Operator) *When
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Execute ¶
func Execute(kl *ast.KnowledgeLibrary, dataCtx ast.IDataContext, name, version string) (*ast.KnowledgeBase, error)
Execute 执行规则
dataCtx 可以使用 ast.NewDataContext() 创建
func NewKnowledgeLibrary ¶
func NewKnowledgeLibrary() *ast.KnowledgeLibrary
NewKnowledgeLibrary 创建 KnowledgeLibrary
func RegisterRule ¶
func RegisterRule(kl *ast.KnowledgeLibrary, jsonBytes []byte, name, version string) error
RegisterRule 注册规则
func RemoveRuleEntry ¶
func RemoveRuleEntry(kl *ast.KnowledgeLibrary, ruleName, name string, version string)
RemoveRuleEntry 从规则引擎中移除规则
Types ¶
type ArithmeticOperator ¶
type ArithmeticOperator struct {
// obj: set 的目标属性
Field string `json:"obj,omitempty"`
Value any `json:"const,omitempty"`
BOR []*Operator `json:"bor,omitempty"`
BAND []*Operator `json:"band,omitempty"`
PLUS []*Operator `json:"plus,omitempty"`
MINUS []*Operator `json:"minus,omitempty"`
DIV []*Operator `json:"div,omitempty"`
MUL []*Operator `json:"mul,omitempty"`
MOD []*Operator `json:"mod,omitempty"`
}
ArithmeticOperator 算数运算符
type LogicalOperator ¶
type LogicalOperator struct {
EQ []*Operator `json:"eq,omitempty"`
NOT []*Operator `json:"not,omitempty"`
GT []*Operator `json:"gt,omitempty"`
GTE []*Operator `json:"gte,omitempty"`
LT []*Operator `json:"lt,omitempty"`
LTE []*Operator `json:"lte,omitempty"`
}
LogicalOperator 逻辑运算符
type Then ¶
type Then struct {
// contains filtered or unexported fields
}
Then 针对 pkg.GruleJSON 中的 then 数据结构
func (*Then) AddSetBand ¶
AddSetBand 创建 & 运算
func (*Then) AddSetMinus ¶
AddSetMinus 创建 - 运算
func (*Then) AddSetPlus ¶
AddSetPlus 创建 + 运算
func (*Then) AddSetValueConst ¶
AddSetValueConst 设置常量值
func (*Then) AddSetValueObj ¶
AddSetValueObj 设置对象的某个属性
type ThenSet ¶
type ThenSet struct {
Set []*ArithmeticOperator `json:"set,omitempty"`
}
type When ¶
type When struct {
And []*LogicalOperator `json:"and,omitempty"`
Or []*LogicalOperator `json:"or,omitempty"`
}
When 针对 pkg.GruleJSON 中的 when 数据结构
func (*When) AddLogicalOperator ¶
func (build *When) AddLogicalOperator(lo *LogicalOperator) *When
AddLogicalOperator 直接将 LogicalOperator 添加到 When
Click to show internal directories.
Click to hide internal directories.