aboutsummaryrefslogtreecommitdiff
path: root/macros/src/declare_interface_args.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-07-20 14:29:45 +0200
committerHampusM <hampus@hampusmat.com>2022-07-20 14:29:45 +0200
commit2d1a6b2d432408d74eb57e0bda3f7434617e1070 (patch)
tree7e21f8126edfdfd9c40b4b51ba5626c6440442d9 /macros/src/declare_interface_args.rs
parent7863d9859a5cbce99c3769e4fdb40283115d358d (diff)
refactor: reorganize folder hierarchy
Diffstat (limited to 'macros/src/declare_interface_args.rs')
-rw-r--r--macros/src/declare_interface_args.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/macros/src/declare_interface_args.rs b/macros/src/declare_interface_args.rs
new file mode 100644
index 0000000..b54f458
--- /dev/null
+++ b/macros/src/declare_interface_args.rs
@@ -0,0 +1,23 @@
+use syn::parse::{Parse, ParseStream, Result};
+use syn::{Path, Token, Type};
+
+pub struct DeclareInterfaceArgs
+{
+ pub implementation: Type,
+ pub interface: Path,
+}
+
+impl Parse for DeclareInterfaceArgs
+{
+ fn parse(input: ParseStream) -> Result<Self>
+ {
+ let implementation: Type = input.parse()?;
+
+ input.parse::<Token![->]>()?;
+
+ Ok(Self {
+ implementation,
+ interface: input.parse()?,
+ })
+ }
+}