Expand description
§sign-bound
Signed integer types for Rust that are bounded to be either positive or negative. The API is
analogous to the built-in NonZero types. The types are all memory-layout optimized, so for
example Option<PositiveI32> and Option<NegativeI32> are both the same size as i32. Using
additional variants in an enum can also have some space benefits.
enum MyEnum {
A(PositiveI16),
B,
C,
D,
}
assert_eq!(size_of::<MyEnum>(), size_of::<PositiveI16>());Note that due to the implementation details of this crate, the space optimization for any type will not occur if there are more than 128 additional enum variants.
Option<PositiveIsize> is particularly useful as a space-efficient optional
Vec index, since Rust’s Vec structure is
limited to
isize::MAX entries.
Structs§
- A signed value that is known to be negative.
- A signed value that is known to be negative.
- A signed value that is known to be negative.
- A signed value that is known to be negative.
- A signed value that is known to be negative.
- A signed value that is known to be positive.
- A signed value that is known to be positive.
- A signed value that is known to be positive.
- A signed value that is known to be positive.
- A signed value that is known to be positive.