Sha256: 441a1e125f2f52b41fa11c6bd6f56bf5fde92b276c72d416599d3c45fd07b0cd

Contents?: true

Size: 615 Bytes

Versions: 16

Compression:

Stored size: 615 Bytes

Contents

module Protobuf
  class Encoder
    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|
              field.encode_to_stream(val, stream)
            end
          end
        else
          field.encode_to_stream(value, stream)
        end
      end

      stream
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
protobuf-3.8.5 lib/protobuf/encoder.rb
protobuf-3.8.5.pre0 lib/protobuf/encoder.rb
protobuf-3.8.4 lib/protobuf/encoder.rb
protobuf-3.8.3 lib/protobuf/encoder.rb
protobuf-3.8.2 lib/protobuf/encoder.rb
protobuf-3.8.1 lib/protobuf/encoder.rb
protobuf-3.8.0 lib/protobuf/encoder.rb
protobuf-3.8.0.pre1 lib/protobuf/encoder.rb
protobuf-3.7.5 lib/protobuf/encoder.rb
protobuf-3.7.4 lib/protobuf/encoder.rb
protobuf-3.7.3 lib/protobuf/encoder.rb
protobuf-3.7.2 lib/protobuf/encoder.rb
protobuf-3.7.2.pre1 lib/protobuf/encoder.rb
protobuf-3.7.1 lib/protobuf/encoder.rb
protobuf-3.7.0 lib/protobuf/encoder.rb
protobuf-3.7.0.pre3 lib/protobuf/encoder.rb