Method: CTypes::Bitfield::Builder#unsigned
- Defined in:
- lib/ctypes/bitfield/builder.rb
#unsigned(name, bits = 1) ⇒ Object
append a new unsigned field to the bitfield
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/ctypes/bitfield/builder.rb', line 147 def unsigned(name, bits = 1) unless @offset raise Error, "cannot mix `#unsigned` and `#field` in Bitfield layout" end name = name.to_sym raise Error, "duplicate field: %p" % [name] if @fields.any? { |(n, _)| n == name } @layout << ((bits == 1) ? "unsigned %p" % [name] : "unsigned %p, %d" % [name, bits]) __field_impl(name:, bits:, offset: @offset, signed: false) @offset += bits self end |