class Protobuf::Encoder
Public Class Methods
encode(message, stream)
click to toggle source
# File lib/protobuf/encoder.rb, line 3 def self.encode(message, stream) message.each_field_for_serialization do |field, value| if field.repeated? if field.packed? packed_value = value.map { |val| field.encode(val) }.join stream << "#{field.tag_encoded}#{::Protobuf::Field::VarintField.encode(packed_value.size)}#{packed_value}" else value.each do |val| stream << "#{field.tag_encoded}#{field.encode(val)}" end end else stream << "#{field.tag_encoded}#{field.encode(value)}" end end stream end