On Thu, Sep 17, 2026 at 10:35 AM Eliot Courtney <[email protected]> wrote: > > Currently, using NonZero/Bounded constants is quite verbose. It's > unfortunate because it disincentivizes using it in interface boundaries. > Introduce a macro to make it nicer to use. The macro `cv!` (for constant > value) takes a const integer expression and widens it to i128 (at build > time only) before passing it as a const generic value to a new trait > `FromConst`. The value is then converted and appears in the > associated constant `FromConst::VALUE`. The trait is implemented by > NonZero, Bounded, and Alignment and lets values of each be constructed > from constants without a verbose turbofish syntax. > For example, `const { NonZero::new(1).unwrap() }` can be written as > `cv!(1)`. > > Add the `cv!` macro to the prelude so it doesn't need to be imported > explicitly to use it. > > Suggested-by: Gary Guo <[email protected]> > Reviewed-by: Gary Guo <[email protected]> > Signed-off-by: Eliot Courtney <[email protected]>
Reviewed-by: Alice Ryhl <[email protected]>
