Re: [PATCH v3 1/3] rust: num: add cv! macro to create values from constant expressions

From: Alexandre Courbot

Date: Fri Sep 18 2026 - 14:05:02 EST


On Thu Sep 17, 2026 at 9:53 AM BST, Gary Guo wrote:
> On Tue Sep 15, 2026 at 8:39 AM BST, Alexandre Courbot wrote:
>> On Wed Sep 2, 2026 at 6:16 PM JST, 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)`.
>>>
>>> Suggested-by: Gary Guo <gary@xxxxxxxxxxx>
>>> Signed-off-by: Eliot Courtney <ecourtney@xxxxxxxxxx>
>>
>> I don't think we have any user but nova-core at the moment, and it
>> benefits from this in several series (patch 3 here, but also ID pool and
>> later r000). Miguel, is this ok if we take it (i.e. the next revision)
>> through drm-rust-next?
>
> How about a topic tag shared between Rust and drm-rust-next? We could also
> remove the old num casts API as part of topic tag and fix all existing users as
> part of merge.

Not opposed to the idea but IIRC there was already some pushback to the
idea. There doesn't seem to be an urgency to remove the old num casts
API that justifies doing it now with a more complicated merge path.