bitfields
Bit Fields for Crystal-Lang
Pure Crystal implementation of Bit Fields. Handles encoding/decoding of bytes.
Installation
- Add the dependency to your 
shard.yml: 
dependencies:
  bitfields:
    github: elorest/bitfields
- Run 
shards install 
Usage
require "bitfields"
class CrossBit < BitFields
  bf rpms : UInt32, 32
  bf temp : UInt8, 4 
  bf psi : UInt16, 9 
  bf power : UInt8, 1 
  bf lights : UInt8, 2 
end
crossbit = CrossBit.new(Bytes[109, 121, 110, 97, 109, 245])
crossbit.temp          #=> 13_u8
crossbit.psi           #=> 342_u16
crossbit.power         #=> 1_u8
crossbit.lights        #=> 3_u8
crossbit.to_slice      #=> Bytes[109, 121, 110, 97, 109, 245]
crossbit.to_s          #=> |lights|power|psi|temp|rpms|
                       #=> |11|1|101010110|1101|01100001011011100111100101101101|
crossbit.power = 0     #=> 0_u8
crossbit.to_slice      #=> Bytes[109, 121, 110, 97, 109, 213]
Contributing
- Fork it (https://github.com/elorest/bitfields/fork)
 - Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
 
Contributors
- Isaac Sloan - creator and maintainer
 
Repository
  bitfields
Owner
  
  Statistic
  - 27
 - 5
 - 0
 - 2
 - 0
 - about 4 years ago
 - December 9, 2018
 
License
  MIT License
Links
  
  Synced at
  Tue, 04 Nov 2025 04:47:22 GMT
Languages