Expand description
§platform_num
Numeric traits for the Links Platform.
This crate provides a set of marker and conversion traits that abstract over Rust’s primitive integer types. They are used throughout the Links Platform ecosystem to write generic code that works with any integer type while preserving type safety.
§Traits
| Trait | Description |
|---|---|
Number | Base numeric trait — any PrimInt + Default + Debug + AsPrimitive<usize> + ToPrimitive |
SignedNumber | Extends Number with signed operations (Signed + FromPrimitive) |
ToSigned | Converts an unsigned type to its signed counterpart (e.g. u32 → i32) |
MaxValue | Provides a MAX associated constant for every primitive integer type |
WrappingArithmetic | Composite trait for wrapping arithmetic — bundles WrappingAdd, WrappingSub, WrappingMul, WrappingNeg, WrappingShl, WrappingShr |
LinkReference | Composite trait for link identifiers — unsigned, hashable, displayable, thread-safe, with wrapping arithmetic and TryFrom/TryInto for all integer types |
§Re-exported num-traits
All num-traits traits that appear in this crate’s supertraits are
re-exported so that downstream crates can use them without adding
num-traits as a direct dependency:
§Example
use platform_num::{LinkReference, MaxValue, Number, SignedNumber, ToSigned};
fn max_link<T: LinkReference>() -> T {
T::MAX
}
assert_eq!(max_link::<u32>(), u32::MAX);Traits§
- AsPrimitive
- A generic interface for casting between machine scalars with the
asoperator, which admits narrowing and precision loss. Implementers of this traitAsPrimitiveshould behave like a primitive numeric type (e.g. a newtype around another primitive), and the intended conversion must never fail. - From
Primitive - A generic trait for converting a number to a value.
- Link
Reference - A composite trait for types that can be used as link identifiers.
- MaxValue
- Provides the maximum value for a numeric type as an associated constant.
- Number
- A base numeric trait combining
PrimInt,Default,Debug,AsPrimitive<usize>, andToPrimitive. - PrimInt
- Generic trait for primitive integers.
- Signed
- Useful functions for signed numbers (i.e. numbers that can be negative).
- Signed
Number - A signed numeric trait extending
Numberwith signed operations. - ToPrimitive
- A generic trait for converting a value to a number.
- ToSigned
- Converts a numeric type to its signed counterpart.
- Unsigned
- A trait for values which cannot be negative
- Wrapping
Add - Performs addition that wraps around on overflow.
- Wrapping
Arithmetic - A composite trait for wrapping arithmetic operations.
- Wrapping
Mul - Performs multiplication that wraps around on overflow.
- Wrapping
Neg - Performs a negation that does not panic.
- Wrapping
Shl - Performs a left shift that does not panic.
- Wrapping
Shr - Performs a right shift that does not panic.
- Wrapping
Sub - Performs subtraction that wraps around on overflow.