Crate bounded_integer[−][src]
Expand description
This crate provides two types of bounded integer.
Macro-generated bounded integers
The bounded_integer! macro allows you to define your own bounded integer type, given a
specific range it inhabits. For example:
bounded_integer! {
struct MyInteger { 0..8 }
}
let num = MyInteger::new(5).unwrap();
assert_eq!(num, 5);This macro supports both structs and enums. See the examples module for the
documentation of generated types.
Const generics-based bounded integers
You can also create ad-hoc bounded integers via types in this library that use const generics, for example:
let num = <BoundedU8<0, 7>>::new(5).unwrap();
assert_eq!(num, 5);These integers are shorter to use as they don’t require a type declaration or explicit name,
and they interoperate better with other integers that have different ranges. However due to the
limits of const generics, they do not implement some traits like Default.
no_std
All the integers in this crate depend only on libcore and so work in #![no_std] environments.
Crate Features
By default, no crate features are enabled.
std: Implement traits fromstd, such asErroronParseError.macro: Enable thebounded_integer!macro.types: Enable the bounded integer types that use const generics.arbitrary1: ImplementArbitraryfor the bounded integers. This is useful when using bounded integers as fuzzing inputs.bytemuck1: ImplementContiguousfor all bounded integers, andZeroablefor macro-generated bounded integers that support it.serde1: ImplementSerializeandDeserializefor the bounded integers, making sure all values will never be out of bounds. This has a deprecated aliasserde.zerocopy06: ImplementAsBytesandUnalignedfor macro-generated bounded integers. We can’t implement them for const generic bounded integers due to limitations in Zerocopy.step_trait: Implement theSteptrait which allows the bounded integers to be easily used in ranges. This will require you to use nightly and place#![feature(step_trait)]in your crate root if you use the macro.
Modules
Examples of bounded integers generated by the bounded_integer! macro.
Macros
macroGenerate a bounded integer type.
Structs
typesAn
i16
constrained to be in the range MIN..=MAX.
typesAn
i32
constrained to be in the range MIN..=MAX.
typesAn
i64
constrained to be in the range MIN..=MAX.
typesAn
i128
constrained to be in the range MIN..=MAX.
typesAn
isize
constrained to be in the range MIN..=MAX.
typesAn
u16
constrained to be in the range MIN..=MAX.
typesAn
u32
constrained to be in the range MIN..=MAX.
typesAn
u64
constrained to be in the range MIN..=MAX.
typesAn
u128
constrained to be in the range MIN..=MAX.
typesAn
usize
constrained to be in the range MIN..=MAX.
An error which can be returned when parsing a bounded integer.
Enums
The cause of the failure to parse the integer.
