entrait 0.5.2

Loosely coupled Rust application design made easy
Documentation
mod basic {
    use entrait::*;

    #[entrait(MockallFoo, mockall)]
    fn mockall_foo(_deps: &(), arg: i32) -> i32 {
        arg
    }

    fn takes_foo(foo: &impl MockallFoo, arg: i32) -> i32 {
        foo.mockall_foo(arg)
    }

    #[test]
    fn test() {
        let mut mock = MockMockallFoo::new();
        mock.expect_mockall_foo().return_const(42);

        let result = takes_foo(&mock, 1337);

        assert_eq!(42, result);
    }
}

mod entrait_for_trait {
    use entrait::*;

    #[entrait(mockall)]
    trait Trait {
        fn method(&self) -> i32;
    }

    #[test]
    fn test() {
        let mut mock = MockTrait::new();
        mock.expect_method().return_const(42);

        assert_eq!(42, mock.method());
    }
}