summaryrefslogtreecommitdiff
path: root/macros/src/lib.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2023-03-19 12:36:01 +0100
committerHampusM <hampus@hampusmat.com>2023-03-19 12:36:01 +0100
commit21911153355b4bf9612c38f5ac92562aec02ffd9 (patch)
treee17fab91a142f6d5fe3d2bfe820dbd8bdee46ee6 /macros/src/lib.rs
parent2d964b39da09ad82eccf09abdea73967bbff76f2 (diff)
docs: add documentation comments
Diffstat (limited to 'macros/src/lib.rs')
-rw-r--r--macros/src/lib.rs34
1 files changed, 33 insertions, 1 deletions
diff --git a/macros/src/lib.rs b/macros/src/lib.rs
index 8106a8c..f11c064 100644
--- a/macros/src/lib.rs
+++ b/macros/src/lib.rs
@@ -1,4 +1,5 @@
-#![deny(clippy::all, clippy::pedantic)]
+//! Macros for Ridicule, a mocking library supporting non-static generics.
+#![deny(clippy::all, clippy::pedantic, missing_docs)]
use proc_macro::TokenStream;
use proc_macro_error::{proc_macro_error, ResultExt};
use quote::{format_ident, quote};
@@ -14,6 +15,37 @@ mod mock_input;
mod syn_ext;
mod util;
+/// Creates a mock.
+///
+/// # Examples
+/// ```
+/// use ridicule::mock;
+///
+/// trait Foo
+/// {
+/// fn bar<A, B>(&self, a: A) -> B;
+/// }
+///
+/// mock! {
+/// MockFoo {}
+///
+/// impl Foo for MockFoo
+/// {
+/// fn bar<A, B>(&self, a: A) -> B;
+/// }
+/// }
+///
+/// fn main()
+/// {
+/// let mut mock_foo = MockFoo::new();
+///
+/// mock_foo
+/// .expect_bar()
+/// .returning(|foo, a: u32| format!("Hello {a}"));
+///
+/// assert_eq!(mock_foo.bar::<u32, String>(123), "Hello 123");
+/// }
+/// ```
#[proc_macro]
#[proc_macro_error]
pub fn mock(input_stream: TokenStream) -> TokenStream