mirror of
https://github.com/hanzoai/expr.git
synced 2026-09-24 16:58:58 +00:00
51 lines
926 B
Go
51 lines
926 B
Go
package fuzz
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/expr-lang/expr"
|
|
)
|
|
|
|
func NewEnv() map[string]any {
|
|
return map[string]any{
|
|
"ok": true,
|
|
"f64": .5,
|
|
"f32": float32(.5),
|
|
"i": 1,
|
|
"i64": int64(1),
|
|
"i32": int32(1),
|
|
"array": []int{1, 2, 3, 4, 5},
|
|
"list": []Foo{{"bar"}, {"baz"}},
|
|
"foo": Foo{"bar"},
|
|
"add": func(a, b int) int { return a + b },
|
|
"div": func(a, b int) int { return a / b },
|
|
"half": func(a float64) float64 { return a / 2 },
|
|
"score": func(a int, x ...int) int {
|
|
s := a
|
|
for _, n := range x {
|
|
s += n
|
|
}
|
|
return s
|
|
},
|
|
"greet": func(name string) string { return "Hello, " + name },
|
|
}
|
|
}
|
|
|
|
func Func() expr.Option {
|
|
return expr.Function("fn", func(params ...any) (any, error) {
|
|
return fmt.Sprintf("fn(%v)", params), nil
|
|
})
|
|
}
|
|
|
|
type Foo struct {
|
|
Bar string
|
|
}
|
|
|
|
func (f Foo) String() string {
|
|
return "foo"
|
|
}
|
|
|
|
func (f Foo) Qux(s string) string {
|
|
return f.Bar + s
|
|
}
|