oni_simulator

Crates.iooni_simulator
lib.rsoni_simulator
version0.1.2
sourcesrc
created_at2018-08-14 03:13:57.012145
updated_at2018-10-13 14:31:07.592164
descriptionNetworking simulator
homepage
repositoryhttps://github.com/oniproject/oni
max_upload_size
id79356
size17,129
Lain-dono (lain-dono)

documentation

http://docs.rs/oni_simulator

README

Latest version Documentation License

use oni_simulator::{Simulator, DefaultMTU};
use std::io;

let sim = Simulator::<DefaultMTU>::new();

let from = "[::1]:1111".parse().unwrap();
let to   = "[::1]:2222".parse().unwrap();

let from = sim.add_socket(from);
let to   = sim.add_socket(to);

from.send_to(&[1, 2, 3], to.local_addr()).unwrap();
sim.advance();

let mut buf = [0u8; 4];
let (bytes, addr) = to.recv_from(&mut buf[..]).unwrap();
assert_eq!(bytes, 3);
assert_eq!(addr, from.local_addr());
assert_eq!(&buf[..bytes], &[1, 2, 3]);

let err = to.recv_from(&mut buf[..]).unwrap_err();
assert_eq!(err.kind(), io::ErrorKind::WouldBlock)
Commit count: 179

cargo fmt