Sha256: b1ef84c1772d934c168e618c35721aaf11d307203b92cbc2b253a0296ef2723f

Contents?: true

Size: 569 Bytes

Versions: 8

Compression:

Stored size: 569 Bytes

Contents

require 'protobuf/field/base_field'

module Protobuf
  module Field
    class FloatField < BaseField
      def self.default; 0.0; end
      def self.max;  1.0/0; end
      def self.min; -1.0/0; end

      def wire_type
        WireType::FIXED32
      end

      def decode(bytes)
        bytes.unpack('e').first
      end

      def encode(value)
        [value].pack('e')
      end

      def acceptable?(val)
        raise TypeError, val.class.name unless val.is_a?(Numeric)
        raise RangeError if val < min || max < val
        true
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
protobuf-2.0.1 lib/protobuf/field/float_field.rb
protobuf-2.0.0 lib/protobuf/field/float_field.rb
protobuf-2.0.0.rc6 lib/protobuf/field/float_field.rb
protobuf-2.0.0.rc5 lib/protobuf/field/float_field.rb
protobuf-2.0.0.rc4 lib/protobuf/field/float_field.rb
protobuf-2.0.0.rc3 lib/protobuf/field/float_field.rb
protobuf-2.0.0.rc2 lib/protobuf/field/float_field.rb
protobuf-2.0.0.rc1 lib/protobuf/field/float_field.rb