Re: [PATCH v2 1/3] rust: num: add cv! macro to create values from constant expressions
From: John Hubbard
Date: Tue Sep 01 2026 - 16:23:10 EST
On 8/31/26 10:06 PM, Eliot Courtney 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)`.
Remarkable, in the sense that it seems like an oversight at the Rust
language level.
Alex, Miguel, is this worth mentioning at Kangrejos?
thanks,
--
John Hubbard