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

Method planCreateMap

interpreter/planner.go:534–565  ·  view source on GitHub ↗

planCreateStruct generates a map or object construction Interpretable.

(expr ast.Expr)

Source from the content-addressed store, hash-verified

532
533// planCreateStruct generates a map or object construction Interpretable.
534func (p *planBuilder) planCreateMap(expr ast.Expr) (InterpretableV2, error) {
535 m := expr.AsMap()
536 entries := m.Entries()
537 optionals := make([]bool, len(entries))
538 keys := make([]InterpretableV2, len(entries))
539 vals := make([]InterpretableV2, len(entries))
540 hasOptionals := false
541 for i, e := range entries {
542 entry := e.AsMapEntry()
543 keyVal, err := p.plan(entry.Key())
544 if err != nil {
545 return nil, err
546 }
547 keys[i] = keyVal
548
549 valVal, err := p.plan(entry.Value())
550 if err != nil {
551 return nil, err
552 }
553 vals[i] = valVal
554 optionals[i] = entry.IsOptional()
555 hasOptionals = hasOptionals || entry.IsOptional()
556 }
557 return &evalMap{
558 id: expr.ID(),
559 keys: keys,
560 vals: vals,
561 optionals: optionals,
562 hasOptionals: hasOptionals,
563 adapter: p.adapter,
564 }, nil
565}
566
567// planCreateObj generates an object construction Interpretable.
568func (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