Class: Protobuf::Field::MessageField

Inherits:
BaseField
  • Object
show all
Defined in:
lib/protobuf/message/field.rb

Instance Attribute Summary

Attributes inherited from BaseField

#default, #default_value, #extension, #message_class, #name, #rule, #tag, #type

Instance Method Summary collapse

Methods inherited from BaseField

default, descriptor, #descriptor, #initialize, #initialized?, #max, #merge, #min, #optional?, #packed?, #ready?, #repeated?, #required?, #to_s

Constructor Details

This class inherits a constructor from Protobuf::Field::BaseField

Instance Method Details

#acceptable?(val) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (TypeError)


584
585
586
587
# File 'lib/protobuf/message/field.rb', line 584

def acceptable?(val)
  raise TypeError unless val.is_a?(type) || val.is_a?(Hash)
  true
end

#decode(bytes) ⇒ Object



589
590
591
592
593
# File 'lib/protobuf/message/field.rb', line 589

def decode(bytes)
  message = type.new
  message.parse_from_string(bytes)
  message
end

#encode(value) ⇒ Object



595
596
597
598
599
# File 'lib/protobuf/message/field.rb', line 595

def encode(value)
  bytes = value.serialize_to_string
  result = VarintField.encode(bytes.size)
  result << bytes
end

#wire_type ⇒ Object



580
581
582
# File 'lib/protobuf/message/field.rb', line 580

def wire_type
  WireType::LENGTH_DELIMITED
end