From 2d964b39da09ad82eccf09abdea73967bbff76f2 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 18 Mar 2023 21:26:54 +0100 Subject: feat: add support for generic traits --- examples/simple.rs | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'examples/simple.rs') diff --git a/examples/simple.rs b/examples/simple.rs index cb6feb9..c5494da 100644 --- a/examples/simple.rs +++ b/examples/simple.rs @@ -7,7 +7,7 @@ trait SomeFoobar fn do_something(&self) -> bool; } -trait Foo +trait Foo { fn bar(&self, num: u128) -> Baz; @@ -16,12 +16,14 @@ trait Foo fn baz(&self, name: &str, foobar: Foobar) where Foobar: SomeFoobar + Debug; + + fn hello(&self, xyz: Xyz); } mock! { MockFoo {} - impl Foo for MockFoo { + impl Foo for MockFoo { fn bar(&self, num: u128) -> Baz; fn biz<'a, Fiz: Debug, Bar>(&'a self, fiz: Fiz) -> &'a Bar; @@ -29,6 +31,8 @@ mock! { fn baz(&self, name: &str, foobar: Foobar) where Foobar: SomeFoobar + Debug; + + fn hello(&self, xyz: Xyz); } } @@ -36,19 +40,38 @@ fn main() { let mut mock_foo = MockFoo::new(); - mock_foo.expect_bar().returning(|_me, num| { + mock_foo.expect_bar::<_, Vec>().returning(|_me, num| { println!("bar was called with {num}"); "Hello".to_string() }); - mock_foo.expect_bar::().returning(|_me, num| { + mock_foo + .expect_bar::>() + .returning(|_me, num| { + println!("bar was called with {num}"); + + 136322 + }); + + mock_foo.expect_bar::<_, String>().returning(|_me, num| { println!("bar was called with {num}"); - 136322 + "Greetings".to_string() }); - assert_eq!(mock_foo.bar::(123), "Hello".to_string()); + assert_eq!( + >>::bar::(&mock_foo, 123), + "Hello".to_string() + ); + + assert_eq!( + >>::bar::(&mock_foo, 456), + 136322 + ); - assert_eq!(mock_foo.bar::(456), 136322); + assert_eq!( + >::bar::(&mock_foo, 789), + "Greetings".to_string() + ); } -- cgit v1.2.3-18-g5258