From ee3cba7204199cc0e6193be3bb40e9814dd4cfb9 Mon Sep 17 00:00:00 2001 From: John Turner Date: Sun, 16 Apr 2023 02:12:12 -0400 Subject: Get derive macro implemented & tests pass --- tests/get.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/get.rs (limited to 'tests') diff --git a/tests/get.rs b/tests/get.rs new file mode 100644 index 0000000..4019cd5 --- /dev/null +++ b/tests/get.rs @@ -0,0 +1,41 @@ +use get::Get; + +macro_rules! testcase { + ($test:literal) => { + concat!("tests/trybuild/", $test) + }; +} + +#[derive(Get)] +pub struct CatStruct<'a, T> { + name: &'a str, + age: u64, + owner: T, +} + +#[derive(Get)] +pub struct CatTupleStruct<'a, T>( + #[get(method = "name")] &'a str, + #[get(method = "age")] u64, + #[get(method = "owner")] T, +); + +#[test] +fn cat_struct() { + let cat = CatStruct { + name: "cat", + age: 1, + owner: (), + }; + assert_eq!(*cat.name(), "cat"); + assert_eq!(*cat.age(), 1); + assert!(matches!(cat.owner(), ())); +} + +#[test] +fn cat_tuple_struct() { + let cat = CatTupleStruct("cat", 1, ()); + assert_eq!(*cat.name(), "cat"); + assert_eq!(*cat.age(), 1); + assert!(matches!(cat.owner(), ())); +} -- cgit v1.2.3