On Wed Apr 23, 2025 at 1:23 AM JST, Joel Fernandes wrote: > > > On 4/20/2025 8:19 AM, Alexandre Courbot wrote: >> We will commonly need to compare chipset versions, so derive the >> ordering traits to make that possible. Also derive Copy and Clone since >> passing Chipset by value will be more efficient than by reference. >> >> Signed-off-by: Alexandre Courbot <acour...@nvidia.com> >> --- >> drivers/gpu/nova-core/gpu.rs | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs >> index >> 17c9660da45034762edaa78e372d8821144cdeb7..4de67a2dc16302c00530026156d7264cbc7e5b32 >> 100644 >> --- a/drivers/gpu/nova-core/gpu.rs >> +++ b/drivers/gpu/nova-core/gpu.rs >> @@ -13,7 +13,7 @@ macro_rules! define_chipset { >> ({ $($variant:ident = $value:expr),* $(,)* }) => >> { >> /// Enum representation of the GPU chipset. >> - #[derive(fmt::Debug)] >> + #[derive(fmt::Debug, Copy, Clone, PartialOrd, Ord, PartialEq, Eq)] > > Since Ord implies PartialOrd, do you need both? Same for Eq.
Ord does not imply PartialOrd, it requires it. It's a bit cumbersome but the compiler will throw an error if `Ord` is derived without `PartialOrd`. Same thing applies for `Eq`.