diff options
| author | John Turner <jturner.usa@gmail.com> | 2023-04-16 02:12:12 -0400 |
|---|---|---|
| committer | John Turner <jturner.usa@gmail.com> | 2023-04-17 00:13:27 -0400 |
| commit | ee3cba7204199cc0e6193be3bb40e9814dd4cfb9 (patch) | |
| tree | 3631ab4ae1ad10f4e801d53848ffe9e680425593 /tests | |
| parent | fea7d96c8a8460c40c737856feeed156d06b26df (diff) | |
| download | get-ee3cba7204199cc0e6193be3bb40e9814dd4cfb9.tar.gz | |
Get derive macro implemented & tests pass
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/get.rs | 41 |
1 files changed, 41 insertions, 0 deletions
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(), ())); +} |
