Function asyncio::wrap [] [src]

pub fn wrap<T, F, R>(handler: F, data: &Arc<T>) -> ArcHandler<T, F, R> where T: IoObject

Provides a Arc handler to asynchronous operation.

The ArcHandler has trait the Handler, that type of Handler::Output is ().

Examples

use std::io;
use std::sync::Arc;
use asyncio::{IoService, wrap};
use asyncio::ip::{Tcp, TcpSocket, TcpEndpoint, TcpListener};

fn on_accept(soc: Arc<TcpListener>, res: io::Result<(TcpSocket, TcpEndpoint)>) {
  if let Ok((acc, ep)) = res {
    println!("accepted {}", ep)
  }
}

let io = &IoService::new();
let soc = Arc::new(TcpListener::new(io, Tcp::v4()).unwrap());
soc.async_accept(wrap(on_accept, &soc));