#macro #utility

macro macromath

Macros for convenient maths with checked, wrapping or saturating semantics

1 unstable release

0.1.0 Dec 13, 2021

#895 in #utility

MIT/Apache

16KB
233 lines

Macros for convenient maths with checked, wrapping or saturating semantics

crate Docs Apache2/MIT licensed Rust Version Build Status

Macromath provides macros which allow to perform checked, wrapping or saturating math using regular operators (+-*/%).

use macromath::checked;

fn calc() -> Option<i8> {
  Some(100)
}

assert_eq!(Some(50), checked!(calc()? / 2));
assert_eq!(None, checked!(3u32 - 9u32 / 4 * 2));

Minimum Supported Rust Version

This crate currently requires Rust 1.56 or higher.

Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.

SemVer Policy

  • All on-by-default features of this library are covered by SemVer
  • MSRV is considered exempt from SemVer as noted above

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~1.5MB
~36K SLoC