summaryrefslogtreecommitdiff
path: root/macros/src
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src')
-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