summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2023-04-16 02:12:12 -0400
committerJohn Turner <jturner.usa@gmail.com>2023-04-17 00:13:27 -0400
commitee3cba7204199cc0e6193be3bb40e9814dd4cfb9 (patch)
tree3631ab4ae1ad10f4e801d53848ffe9e680425593 /tests
parentfea7d96c8a8460c40c737856feeed156d06b26df (diff)
downloadget-ee3cba7204199cc0e6193be3bb40e9814dd4cfb9.tar.gz
Get derive macro implemented & tests pass
Diffstat (limited to 'tests')
-rw-r--r--tests/get.rs41
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(), ()));
+}