bitfields
Version, currently 1.2.19 versions
github.com/elorest/bitfields
Bit Fields for Crystal Language
27 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
bitfields:
github: elorest/bitfields
version: ~> 1.2.1Then run:
shards installshard.yml
- Crystal
> 0.31.1, < 2.0- License
- MIT
- Author
- Isaac Sloan <isaac@isaacsloan.com>
Dependencies
This version declares no dependencies.
README
# Bit Fields for Crystal-Lang
Pure [Crystal](https://crystal-lang.org/) implementation of Bit Fields. Handles encoding/decoding of bytes.
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
bitfields:
github: elorest/bitfields
```
2. Run `shards install`
## Usage
```crystal
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
1. Fork it (<https://github.com/elorest/bitfields/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [Isaac Sloan](https://github.com/elorest) - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.2.1- Tagged
- Oct 30, 2021
- Commit
cdc2dcab09cc- Crystal
> 0.31.1, < 2.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/elorest/bitfields
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 9