Class: Rust::Types::PrimitiveInteger
- Inherits:
-
Type
- Object
- Type
- Rust::Types::PrimitiveInteger
show all
- Defined in:
- lib/rust_require/types/primitives.rb
Instance Attribute Summary
Attributes inherited from Type
#rust_type
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Type
#c_input_conversion, #c_input_type, #c_output_conversion, #c_output_type, #c_type, #ffi_input_type, #ffi_output_type, #ffi_type, #ruby_output_conversion, rust_type
Constructor Details
Returns a new instance of PrimitiveInteger.
20
21
22
23
24
|
# File 'lib/rust_require/types/primitives.rb', line 20
def initialize
@bits = self.class.bits
@signed = self.class.signed
super
end
|
Class Method Details
.bits ⇒ Object
26
|
# File 'lib/rust_require/types/primitives.rb', line 26
def self.bits; @bits; end
|
.signed ⇒ Object
27
|
# File 'lib/rust_require/types/primitives.rb', line 27
def self.signed; @signed; end
|
Instance Method Details
44
45
46
47
|
# File 'lib/rust_require/types/primitives.rb', line 44
def ruby_input_conversion(num)
type_check(num)
num
end
|
#rust_type_regex ⇒ Object
29
30
31
|
# File 'lib/rust_require/types/primitives.rb', line 29
def rust_type_regex
@rust_type ? super : /.^/ end
|
#type_check(num) ⇒ Object
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/rust_require/types/primitives.rb', line 33
def type_check(num)
bounds = if @signed
(-2**(@bits-1)+1)..(2**(@bits-1)-1)
else
0..(2**@bits-1)
end
raise ArgumentError, "#{num.inspect} is no integer." unless [Fixnum, Bignum].include? num.class
raise ArgumentError, "#{num} is not in the expected input range #{bounds}" unless bounds.include? num
end
|