Sha256: 3971b3f8763f0360bbdab5c934fd7bad7ed8e13a5b5eb3d22eeb46aaeee76348
Contents?: true
Size: 976 Bytes
Versions: 4
Compression:
Stored size: 976 Bytes
Contents
require 'protobuf/common/wire_type' module Protobuf class NotInitializedError < StandardError; end class Encoder class <<self def encode(stream, message) self.new(stream, message).encode end end def initialize(stream=nil, message=nil) @stream, @message = stream, message end def encode(stream=@stream, message=@message) raise NotInitializedError unless message.initialized? message.each_field do |field, value| next unless message.has_field?(field.name) if field.repeated? value.each do |val| write_pair field, val, stream end else write_pair field, value, stream end end end def write_pair(field, value, stream) key = (field.tag << 3) | field.wire_type key_bytes = Protobuf::Field::VarintField.encode key stream.write key_bytes bytes = field.get value stream.write bytes end end end
Version data entries
4 entries across 4 versions & 2 rubygems