enum_handler_core 0.1.0

This crate is part of the enum_handler library. Do not use it directly.
Documentation
use enum_handler::EnumHandler;

#[test]
fn test_mock() {
    #[derive(EnumHandler)]
    #[enum_handler(mock_name = "TestEvent", pass_args_by_ref = true)]
    enum Event {
        Hello(String),
    }

    let event = Event::Hello("world".to_string());
    let mut mock = MockTestEvent::new();
    mock.expect_on_hello()
        .times(1)
        .withf(|s| s == "world")
        .returning(|_| ());
    mock.on(&event);
}

#[tokio::test]
async fn test_async_mock() {
    #[derive(EnumHandler)]
    #[enum_handler(is_async = true, mock_name = "AsyncTestEvent", pass_args_by_ref = true)]
    enum AsyncEvent {
        Hello(String),
    }

    let event = AsyncEvent::Hello("world".to_string());
    let mut mock = MockAsyncTestEvent::new();
    mock.expect_on_hello()
        .times(1)
        .withf(|s| s == "world")
        .returning(|_| ());
    mock.on(&event)
        .await;
}