ProtoToEntryExpr converts a protobuf struct/map entry to an ast.EntryExpr
(e *exprpb.Expr_CreateStruct_Entry)
| 112 | |
| 113 | // ProtoToEntryExpr converts a protobuf struct/map entry to an ast.EntryExpr |
| 114 | func ProtoToEntryExpr(e *exprpb.Expr_CreateStruct_Entry) (EntryExpr, error) { |
| 115 | factory := NewExprFactory() |
| 116 | switch e.GetKeyKind().(type) { |
| 117 | case *exprpb.Expr_CreateStruct_Entry_FieldKey: |
| 118 | return exprStructField(factory, e.GetId(), e) |
| 119 | case *exprpb.Expr_CreateStruct_Entry_MapKey: |
| 120 | return exprMapEntry(factory, e.GetId(), e) |
| 121 | } |
| 122 | return nil, fmt.Errorf("unsupported expr entry kind: %v", e) |
| 123 | } |
| 124 | |
| 125 | func exprInternal(factory ExprFactory, e *exprpb.Expr) (Expr, error) { |
| 126 | id := e.GetId() |