Show the crate…
4 releases
0.9.1 | Jun 8, 2021 |
---|---|
0.9.0 | Feb 18, 2021 |
0.9.0-alpha | Mar 10, 2021 |
0.8.1 | Feb 20, 2021 |
#3 in #tetsy
1,178 downloads per month
Used in 233 crates
(4 directly)
53KB
1.5K
SLoC
uint-crate
Description
Provides facilities to construct big unsigned integer types which use no allocations (stack-based, fixed bit length).
If you want to use a predefined U128
, U256
or U512
type, take a look at the tetsy-primitive-types
or vapory-types
crate.
The focus on the provided big unsigned integer types is performance and cross-platform availability. Support a very similar API as the built-in primitive integer types.
Usage
In your Cargo.toml
paste
uint = "0.9.0"
Import the macro
use uint_crate::construct_uint;
If you're using pre-edition Rust in your main file
#[macro_use]
extern crate uint_crate;
Construct your own big unsigned integer type as follows.
// U1024 with 1024 bits consisting of 16 x 64-bit words
construct_uint! {
pub struct U1024(16);
}
Tests
Basic tests
cargo test --release
Basic tests + property tests
cargo test --release --features=quickcheck
Benchmark tests
cargo bench
Fuzz tests
see fuzz README.md
Crate Features
std
: Use Rust's standard library.- Enables
byteorder/std
,rustc-hex/std
- Enabled by default.
- Enables
quickcheck
: Enable quickcheck-style property testing- Use with
cargo test --release --features=quickcheck
.
- Use with
arbitrary
: Allow for creation of anuint
object from random unstructured input for use with fuzzers that use thearbitrary
crate.- Disabled by default.
Dependencies
~145–550KB