aboutsummaryrefslogtreecommitdiff
path: root/syrette_macros
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-07-09 22:01:25 +0200
committerHampusM <hampus@hampusmat.com>2022-07-09 22:01:25 +0200
commitdda28f312ac87e84b6daed1ace7b2bcc3e47f71d (patch)
tree163e34b439170f7027be8a2ec77fa533f4bd1c0b /syrette_macros
parentb5149091a263b373cb1302d197a79ea94653d826 (diff)
docs: add documentation comments
Diffstat (limited to 'syrette_macros')
-rw-r--r--syrette_macros/src/lib.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/syrette_macros/src/lib.rs b/syrette_macros/src/lib.rs
index 3fd8a59..faf338c 100644
--- a/syrette_macros/src/lib.rs
+++ b/syrette_macros/src/lib.rs
@@ -141,6 +141,30 @@ fn get_dependency_types(item_impl: &ItemImpl) -> Vec<Type>
);
}
+/// Makes a struct injectable. Therefore usable with `DIContainer`.
+///
+/// # Arguments
+///
+/// * A interface trait the struct implements.
+///
+/// # Examples
+/// ```
+/// trait IConfigReader
+/// {
+/// fn read_config() -> Config;
+/// }
+///
+/// struct ConfigReader {}
+///
+/// #[injectable(IConfigReader)]
+/// impl IConfigReader for ConfigReader
+/// {
+/// fn read_config() -> Config
+/// {
+/// // Stuff here
+/// }
+/// }
+/// ```
#[proc_macro_attribute]
pub fn injectable(args_stream: TokenStream, impl_stream: TokenStream) -> TokenStream
{
@@ -205,6 +229,7 @@ pub fn injectable(args_stream: TokenStream, impl_stream: TokenStream) -> TokenSt
.into()
}
+#[doc(hidden)]
#[proc_macro]
pub fn castable_to(input: TokenStream) -> TokenStream
{