forked from bytedance/arishem
-
Notifications
You must be signed in to change notification settings - Fork 0
/
arishem.proto
60 lines (52 loc) · 1.28 KB
/
arishem.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
message Const {
optional bool BoolConst = 1;
optional double NumConst = 2;
optional string StrConst = 3;
}
message MathExpr {
required string OpMath = 1;
optional Expr Lhs = 2;
optional Expr Rhs = 3;
repeated Expr ParamList = 4;
}
message FuncExpr {
required string FuncName = 1;
map<string,Expr> ParamMap = 2;
repeated Expr ParamList = 3;
}
message FeatureExpr {
required string FeaturePath = 1;
map<string,Expr> BuiltinParam = 2;
}
message Expr {
repeated Expr ListExpr = 1;
map<string,Expr> MapExpr = 2;
optional Const Const = 3;
repeated Const ConstList = 4;
optional MathExpr MathExpr = 5;
optional FuncExpr FuncExpr = 6;
optional string VarExpr = 7;
optional FeatureExpr FeatureExpr = 8;
}
message ActionAim {
required string ActionName = 1;
map<string,Expr> ParamMap = 2;
repeated Expr ParamList = 3;
}
message Condition {
required string Operator = 1;
required Expr Lhs = 2;
required Expr Rhs = 3;
}
message ConditionGroup {
required string OpLogic = 1;
repeated ConditionGroup ConditionGroups = 2;
repeated Condition Conditions = 3;
}
message RuleExample {
required string Name = 1;
required ConditionGroup ConditionExpr = 2;
optional ActionAim ActionAim = 3;
repeated ActionAim ActionListAim = 4;
optional Expr ExprAim = 5;
}