xidl-jsonrpc 0.9.0

A IDL codegen.
Documentation
use std::net::SocketAddr;

use super::{Listener, Stream};

pub struct TcpListener {
    inner: tokio::net::TcpListener,
}

impl TcpListener {
    pub async fn bind(addr: &str) -> std::io::Result<Self> {
        let inner = tokio::net::TcpListener::bind(addr).await?;
        Ok(Self { inner })
    }
}

#[async_trait::async_trait]
impl Listener for TcpListener {
    async fn accept(
        &self,
    ) -> std::io::Result<(Box<dyn Stream + Unpin + Send + 'static>, SocketAddr)> {
        let (stream, peer) = self.inner.accept().await?;
        Ok((Box::new(stream), peer))
    }
}