diff options
| author | John Turner <jturner.usa@gmail.com> | 2025-10-26 20:20:06 -0400 |
|---|---|---|
| committer | John Turner <jturner.usa@gmail.com> | 2025-10-26 20:20:06 -0400 |
| commit | 287090c95ae6200bd60bd50021f6ca05130a5cc6 (patch) | |
| tree | 22fbbc1f4f9fdfca97e02c48154127c86951f14c /tests | |
| parent | c5c6b646a5605221e476b4ea6cce6eccb1779552 (diff) | |
| download | get-287090c95ae6200bd60bd50021f6ca05130a5cc6.tar.gz | |
impl deref getters
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/get.rs | 60 |
1 files changed, 12 insertions, 48 deletions
diff --git a/tests/get.rs b/tests/get.rs index 8ff2c24..ccb6d9d 100644 --- a/tests/get.rs +++ b/tests/get.rs @@ -16,74 +16,38 @@ fn trybuild() { mod get { use get::Get; #[derive(Get)] - pub struct Cat<'a, T> { - name: &'a str, + pub struct Cat<T> { + #[get(kind = "deref")] + name: String, + #[get(kind = "move")] age: u64, owner: T, } - #[derive(Get)] - pub struct CatTuple<'a, T>( - #[get(method = "name")] &'a str, - #[get(method = "age")] u64, - #[get(method = "owner")] T, - ); - - #[test] - fn cat_struct() { - let cat = Cat { - 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 = CatTuple("cat", 1, ()); - assert_eq!(*cat.name(), "cat"); - assert_eq!(*cat.age(), 1); - assert!(matches!(cat.owner(), ())); - } -} - -mod get_copy { - use get::GetCopy; - - #[derive(Clone, Copy, GetCopy)] - pub struct Cat<'a, T> { - name: &'a str, - age: u64, - owner: T, - } - - #[derive(Clone, Copy, GetCopy)] - pub struct CatTuple<'a, T>( - #[get(method = "name")] &'a str, - #[get(method = "age")] u64, + #[derive(Clone, Get)] + pub struct CatTuple<T>( + #[get(method = "name", kind = "deref")] String, + #[get(method = "age", kind = "move")] u64, #[get(method = "owner")] T, ); #[test] fn cat_struct() { let cat = Cat { - name: "cat", + name: "cat".to_string(), age: 1, owner: (), }; assert_eq!(cat.name(), "cat"); - assert_eq!(cat.age(), 1); assert!(matches!(cat.owner(), ())); + assert_eq!(cat.age(), 1); } #[test] fn cat_tuple_struct() { - let cat = CatTuple("cat", 1, ()); + let cat = CatTuple("cat".to_string(), 1, ()); assert_eq!(cat.name(), "cat"); - assert_eq!(cat.age(), 1); assert!(matches!(cat.owner(), ())); + assert_eq!(cat.age(), 1); } } |
