Method: Cel::Message.convert_from_type

Defined in:
lib/cel/ast/elements.rb

.convert_from_type(type, value) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/cel/ast/elements.rb', line 53

def self.convert_from_type(type, value)
  case type
  when Invoke, Identifier
    spread_type = type.to_s
    Protobuf.convert_from_type(spread_type, value)
  when Type
    [type, value]
  else
    [
      MapType.new(struct.to_h do |k, v|
        [Literal.to_cel_type(k), Literal.to_cel_type(v)]
      end),
      Struct.new(*struct.keys.map(&:to_sym)).new(*struct.values),
    ]
  end
end