Expand description
§const-reify
Runtime-to-const-generic bridge via match-table dispatch.
Given a runtime u64 value in 0..=255, dispatches to the corresponding
monomorphization of a const-generic type, enabling type-level programming
with runtime-determined values.
See DESIGN.md
for the design rationale and safety analysis.
§Examples
use const_reify::{reify_const, HasModulus};
let result = reify_const(17, |m| m.modulus());
assert_eq!(result, 17);Using the reify! macro:
use const_reify::{reify, HasModulus};
reify!(42u64, |m: &dyn HasModulus| {
assert_eq!(m.modulus(), 42);
});Re-exports§
pub use nat_reify::reify_nat;pub use nat_reify::reify_nat2;pub use nat_reify::reify_nat2_fn;pub use nat_reify::reify_nat_fn;pub use nat_reify::FnNat;pub use nat_reify::FnNat2;pub use nat_reify::Nat2Callback;pub use nat_reify::NatCallback;
Modules§
- nat_
reify - True value→type reification for natural numbers.
Macros§
- def_
nat2_ callback - Define a
Nat2Callbackstruct with minimal boilerplate. - def_
nat_ callback - Define a
NatCallbackstruct with minimal boilerplate. - reify
- Convenience macro for runtime-to-const-generic dispatch.
Structs§
- Modular
- A const-generic type parameterized by a
u64modulus.
Constants§
- MAX_
REIFY_ VALUE - Maximum supported value for
reify_constdispatch.
Traits§
- HasModulus
- Trait providing access to the const-generic modulus value.
Functions§
- reify_
const - Dispatch a runtime
u64value to the correspondingModular<N>monomorphization, passing it tofas a&dyn HasModulus.