From 003d1f3b1d0586b4fdc0f381d7c0ab1a330c636b Mon Sep 17 00:00:00 2001 From: Vincent Herlemont Date: Sun, 17 Dec 2023 10:37:38 +0100 Subject: [PATCH] feat: add native_model_id_str and native_model_version_str --- .../native_model/native_model_macro/src/method/id.rs | 4 ++++ .../native_model_macro/src/method/version.rs | 4 ++++ libraries/native_model/src/model.rs | 2 ++ libraries/native_model/tests_crate/tests/macro.rs | 11 ++++++++++- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/libraries/native_model/native_model_macro/src/method/id.rs b/libraries/native_model/native_model_macro/src/method/id.rs index 6257e434..bc697d9f 100644 --- a/libraries/native_model/native_model_macro/src/method/id.rs +++ b/libraries/native_model/native_model_macro/src/method/id.rs @@ -8,6 +8,10 @@ pub(crate) fn generate_native_model_id(model_attributes: &ModelAttributes) -> To fn native_model_id() -> u32 { #native_model_id } + + fn native_model_id_str() -> &'static str { + stringify!(#native_model_id) + } }; gen } diff --git a/libraries/native_model/native_model_macro/src/method/version.rs b/libraries/native_model/native_model_macro/src/method/version.rs index fd10d829..f4dac013 100644 --- a/libraries/native_model/native_model_macro/src/method/version.rs +++ b/libraries/native_model/native_model_macro/src/method/version.rs @@ -8,6 +8,10 @@ pub(crate) fn generate_native_model_version(model_attributes: &ModelAttributes) fn native_model_version() -> u32 { #native_model_version } + + fn native_model_version_str() -> &'static str { + stringify!(#native_model_version) + } }; gen } diff --git a/libraries/native_model/src/model.rs b/libraries/native_model/src/model.rs index b8307492..fa813184 100644 --- a/libraries/native_model/src/model.rs +++ b/libraries/native_model/src/model.rs @@ -2,7 +2,9 @@ use crate::{DecodeResult, EncodeResult, Result}; pub trait Model: Sized { fn native_model_id() -> u32; + fn native_model_id_str() -> &'static str; fn native_model_version() -> u32; + fn native_model_version_str() -> &'static str; // --------------- Decode --------------- fn native_model_decode_body(data: Vec, id: u32) -> DecodeResult diff --git a/libraries/native_model/tests_crate/tests/macro.rs b/libraries/native_model/tests_crate/tests/macro.rs index 4216d103..4f7f4cc1 100644 --- a/libraries/native_model/tests_crate/tests/macro.rs +++ b/libraries/native_model/tests_crate/tests/macro.rs @@ -28,10 +28,19 @@ impl From for Foo1 { } #[test] -fn test_simple() { +fn get_id_version_int() { assert_eq!(Foo1::native_model_id(), 1); assert_eq!(Foo1::native_model_version(), 1); assert_eq!(Foo2::native_model_id(), 1); assert_eq!(Foo2::native_model_version(), 2); } + +#[test] +fn get_id_version_str() { + assert_eq!(Foo1::native_model_id_str(), "1"); + assert_eq!(Foo1::native_model_version_str(), "1"); + + assert_eq!(Foo2::native_model_id_str(), "1"); + assert_eq!(Foo2::native_model_version_str(), "2"); +}