MCPcopy Create free account
hub / github.com/cel-expr/cel-go / planCreateMap

Method planCreateMap

interpreter/planner.go:556–587  ·  view source on GitHub ↗

planCreateStruct generates a map or object construction Interpretable.

(expr ast.Expr)

Source from the content-addressed store, hash-verified

554
555// planCreateStruct generates a map or object construction Interpretable.
556func (p *planBuilder) planCreateMap(expr ast.Expr) (InterpretableV2, error) {
557 m := expr.AsMap()
558 entries := m.Entries()
559 optionals := make([]bool, len(entries))
560 keys := make([]InterpretableV2, len(entries))
561 vals := make([]InterpretableV2, len(entries))
562 hasOptionals := false
563 for i, e := range entries {
564 entry := e.AsMapEntry()
565 keyVal, err := p.plan(entry.Key())
566 if err != nil {
567 return nil, err
568 }
569 keys[i] = keyVal
570
571 valVal, err := p.plan(entry.Value())
572 if err != nil {
573 return nil, err
574 }
575 vals[i] = valVal
576 optionals[i] = entry.IsOptional()
577 hasOptionals = hasOptionals || entry.IsOptional()
578 }
579 return &evalMap{
580 id: expr.ID(),
581 keys: keys,
582 vals: vals,
583 optionals: optionals,
584 hasOptionals: hasOptionals,
585 adapter: p.adapter,
586 }, nil
587}
588
589// planCreateObj generates an object construction Interpretable.
590func (p *planBuilder) planCreateStruct(expr ast.Expr) (InterpretableV2, error) {

Callers 1

planMethod · 0.95

Calls 8

planMethod · 0.95
AsMapMethod · 0.65
EntriesMethod · 0.65
AsMapEntryMethod · 0.65
KeyMethod · 0.65
ValueMethod · 0.65
IsOptionalMethod · 0.65
IDMethod · 0.65

Tested by

no test coverage detected