class Protobuf::Field::VarintField
Constants
- INT32_MAX
Constants
- INT32_MIN
- INT64_MAX
- INT64_MIN
- UINT32_MAX
- UINT64_MAX
Public Class Methods
default()
click to toggle source
Class Methods
# File lib/protobuf/field/varint_field.rb, line 22 def self.default 0 end
encode(value)
click to toggle source
# File lib/protobuf/field/varint_field.rb, line 26 def self.encode(value) bytes = [] until value < 128 bytes << (0x80 | (value & 0x7f)) value >>= 7 end (bytes << value).pack('C*') end
Public Instance Methods
acceptable?(val)
click to toggle source
Public Instance Methods
# File lib/protobuf/field/varint_field.rb, line 39 def acceptable?(val) int_val = coerce!(val) int_val >= self.class.min && int_val <= self.class.max rescue false end
coerce!(val)
click to toggle source
# File lib/protobuf/field/varint_field.rb, line 46 def coerce!(val) return val.to_i if val.is_a?(Numeric) Integer(val, 10) end
decode(value)
click to toggle source
# File lib/protobuf/field/varint_field.rb, line 51 def decode(value) value end
encode(value)
click to toggle source
# File lib/protobuf/field/varint_field.rb, line 55 def encode(value) return [value].pack('C') if value < 128 bytes = [] until value == 0 bytes << (0x80 | (value & 0x7f)) value >>= 7 end bytes[-1] &= 0x7f bytes.pack('C*') end
wire_type()
click to toggle source
# File lib/protobuf/field/varint_field.rb, line 67 def wire_type ::Protobuf::WireType::VARINT end