From 287090c95ae6200bd60bd50021f6ca05130a5cc6 Mon Sep 17 00:00:00 2001 From: John Turner Date: Sun, 26 Oct 2025 20:20:06 -0400 Subject: impl deref getters --- tests/get.rs | 60 ++++++++++++------------------------------------------------ 1 file changed, 12 insertions(+), 48 deletions(-) (limited to 'tests') 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 { + #[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( + #[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); } } -- cgit v1.2.3