From 20444e9b123b87331f72baca31bb26080d62c019 Mon Sep 17 00:00:00 2001 From: Jorge Date: Mon, 4 Mar 2024 11:00:24 +0100 Subject: [PATCH] Corrected declarative_macro.rs documentation. --- indexed_valued_enums/src/macros.rs | 9 ++++----- indexed_valued_enums/tests/declarative_macro.rs | 1 + indexed_valued_enums/tests/derive_macro.rs | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/indexed_valued_enums/src/macros.rs b/indexed_valued_enums/src/macros.rs index 6af67dd..77bdf09 100644 --- a/indexed_valued_enums/src/macros.rs +++ b/indexed_valued_enums/src/macros.rs @@ -158,7 +158,7 @@ macro_rules! create_indexed_valued_enum { If you just need a reference to the value, use \ [",stringify!($enum_name),"::value_ref])] instead, as it doesn't require a read copy)

This always returns [Option::Some], so it's recommended to call\ - [",stringify!($enum_name),"::value] instead")
] + [",stringify!($enum_name),"::value] instead")] pub const fn value_opt(&self) -> Option<$value_type> { indexed_valued_enums::valued_enum::value_opt_internal(self) } @@ -179,18 +179,17 @@ macro_rules! create_indexed_valued_enum { instead, as it performs a read copy \

This always returns [Option::Some], so it's recommended to call\ [",stringify!($enum_name),"::value] instead")] - pub const fn value_opt(&self) -> Option<&'static $value_type> { + pub const fn value_ref_opt(&self) -> Option<&'static $value_type> { indexed_valued_enums::valued_enum::value_ref_opt_internal(self) } #[doc = concat!("Gives the value of type [",stringify!($value_type),"] corresponding \ to this [", stringify!($enum_name),"] 's variant, if you need a copy of the value\ - but the value doesn't implement Clone, use [",stringify!($value_type),"::value]" - instead as it performs a read copy)] + but the value doesn't implement Clone, use [",stringify!($enum_name),"::value] \ + instead as it performs a read copy")] pub const fn value_ref(&self) -> &'static $value_type { indexed_valued_enums::valued_enum::value_ref_internal(self) } - } }; (process feature $enum_name:ident, $value_type:ty; ValueToVariantDelegators) diff --git a/indexed_valued_enums/tests/declarative_macro.rs b/indexed_valued_enums/tests/declarative_macro.rs index b31ae1d..325abe2 100644 --- a/indexed_valued_enums/tests/declarative_macro.rs +++ b/indexed_valued_enums/tests/declarative_macro.rs @@ -20,6 +20,7 @@ struct NumberDescription { fn test() { assert_eq!(Number::Zero.discriminant(), 0); assert_eq!(Number::First.value().description, "First position"); + assert_eq!(Number::First.value_ref().description, "First position"); assert_eq!(Number::First.index, 1); assert_eq!(Number::Second.clone(), Number::Second); assert_eq!(Number::Third, Number::value_to_variant( diff --git a/indexed_valued_enums/tests/derive_macro.rs b/indexed_valued_enums/tests/derive_macro.rs index b8903be..a935d74 100644 --- a/indexed_valued_enums/tests/derive_macro.rs +++ b/indexed_valued_enums/tests/derive_macro.rs @@ -18,6 +18,7 @@ enum NumberValue { fn test_valued() { assert_eq!(NumberValue::Zero.discriminant(), 0); assert_eq!(NumberValue::First.value(), 1); + assert_eq!(NumberValue::First.value_ref(), &1); assert_eq!(*NumberValue::First, 1); assert_eq!(NumberValue::Second.clone(), NumberValue::Second); assert_eq!(NumberValue::Third, NumberValue::value_to_variant(&3)); @@ -45,6 +46,7 @@ enum NumberValueDefaulted { fn test_defaulted() { assert_eq!(NumberValueDefaulted::Zero.discriminant(), 0); assert_eq!(NumberValueDefaulted::First.value(), 1); + assert_eq!(NumberValueDefaulted::First.value_ref(), &1); assert_eq!(*NumberValueDefaulted::First, 1); assert_eq!(NumberValueDefaulted::Second.clone(), NumberValueDefaulted::Second); assert_eq!(NumberValueDefaulted::Third, NumberValueDefaulted::value_to_variant(&3)); @@ -77,6 +79,7 @@ enum NumberCustom { fn test_custom_type() { assert_eq!(NumberCustom::Zero.discriminant(), 0); assert_eq!(NumberCustom::First.value().num, 1); + assert_eq!(NumberCustom::First.value_ref().num, 1); assert_eq!(NumberCustom::Ten.num, 10); assert_eq!(NumberCustom::Ten.name, "Ten"); assert_eq!(NumberCustom::Second.clone().num, NumberCustom::Second.num);