noxious 1.0.4

The core library for noxious, a Rust port of Toxiproxy
Documentation
use crate::socket::{ReadStream, SocketListener, SocketStream, WriteStream};
use async_trait::async_trait;
use mockall::mock;
use std::{io, net::SocketAddr};

mock! {
    pub MemoryListener {}

    #[async_trait]
    impl SocketListener for MemoryListener {
        type Stream = MockMemoryStream;

        async fn bind(addr: &str) -> io::Result<Self>
        where
            Self: Sized;

        async fn accept(&self) -> io::Result<(MockMemoryStream, SocketAddr)>;
    }
}

mock! {
    pub MemoryStream {}

    #[async_trait]
    impl SocketStream for MemoryStream {
        async fn connect(addr: &str) -> io::Result<Self>
        where
            Self: Sized + 'static;

        fn into_split(self) -> (ReadStream, WriteStream);
    }
}