saline
Version, currently 1.0.04 versions
- 1.0.0latestApr 28, 2020
- 0.2.0not indexedJul 27, 2021
- 0.1.2not indexedJul 27, 2021
- 0.1.1not indexedJul 27, 2021
github.com/RespiteSage/saline
Saturating arithmetic for Crystal
7 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
saline:
github: RespiteSage/saline
version: ~> 1.0.0Then run:
shards installshard.yml
- Crystal
0.34.0- License
- MIT
- Author
- Benjamin Wade
Dependencies
This version declares no dependencies.
README
# saline Saturating arithmetic for Crystal ## Usage The `Saturating` generic type lets you impose saturating arithmetic on any `Number` type. This means that in any case when the wrapped type would overflow or underflow, it instead clamps to the relevant boundary (the type's `MAX` in case of overflow or `MIN` in case of underflow). The code snippet below demonstrates this concept with an Int32: ```crystal n = Saturating(Int32).new(Int32::MAX) n += 1 # => 2147483647 (Int32::MAX) n = Saturating(Int32).new(Int32::MIN) n -= 1 # => -2147483648 (Int32::MIN) ``` ## Development This shard currently uses an initial pure-Crystal approach. While I want to keep that approach around, saturating arithmetic is implemented already in LLVM, which undergirds Crystal. I'd like to have create bindings to [these functions](https://llvm.org/docs/LangRef.html#saturation-arithmetic-intrinsics) eventually, with the ability to use each implementation as desired. ## Contributing 1. Fork it (<https://github.com/kinxer/saline/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 - [Benjamin Wade](https://github.com/kinxer) - 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.0.0- Tagged
- Apr 28, 2020
- Commit
fb037d1300b9- Crystal
0.34.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/RespiteSage/saline
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 14, 2026
- Synced
- Aug 14, 2026
- Versions
- 4