trying below for custome pb type for expression does not work
with env creation error: unsupported type: *gatewaypb.NoteRequest
import gatewaypb "gogoproto/xxxxx"
req := gatewaypb.NoteRequest{
Note: &gatewaypb.Note{
Note: &google_protobuf2.StringValue{Value: "noteval"},
},
}
// Step 2: Set up the go-cel environment
env, err := cel.NewEnv(
cel.Types(&gatewaypb.NoteRequest{}, &gatewaypb.Note{}),
cel.Declarations(
decls.NewVar("req", decls.NewObjectType("gatewaypb.NoteRequest")),
),
)
if err != nil {
fmt.Println("env creation error:", err)
return
}
// Step 3: Create and evaluate a go-cel expression
ast, iss := env.Compile(`req.Note.Note.Value == "noteval"`)
if iss.Err() != nil {
fmt.Println("compile error:", iss.Err())
return
}
prg, err := env.Program(ast)
if err != nil {
fmt.Println("program creation error:", err)
return
}
// Evaluate the expression
out, _, err := prg.Eval(map[string]interface{}{
"req": req,
})
if err != nil {
fmt.Println("evaluation error:", err)
return
}
fmt.Println("Evaluation result:", out)