lazy_socket/
lib.rs

1//!Raw Socket API
2//!
3//!The library serves as thin wrapper over socket API.
4//!It provides necessary minimum amount of safety and easy to use.
5//!
6//!## Examples
7//!
8//!### Create TCP socket and connect in non-blocking mode.
9//!
10//!```rust
11//!extern crate lazy_socket;
12//!
13//!use std::net;
14//!use std::str::FromStr;
15//!
16//!use lazy_socket::raw::{
17//!    Socket,
18//!    Family,
19//!    Protocol,
20//!    Type,
21//!    select
22//!};
23//!
24//!fn main() {
25//!    let timeout = 1000;
26//!    let socket = match Socket::new(Family::IPv4, Type::STREAM, Protocol::TCP) {
27//!        Ok(socket) => socket,
28//!        Err(error) => {
29//!            println!("Couldn't open socket. Erro: {}", error);
30//!            return;
31//!        }
32//!    };
33//!
34//!    let dest = net::SocketAddr::from_str("192.168.0.1:80").unwrap();
35//!
36//!    let _ = socket.set_blocking(false);
37//!    let _ = socket.connect(&dest);
38//!    match select(&[], &[&socket], &[&socket], Some(timeout)) {
39//!          Ok(_) => println!("Connected!"),
40//!          Err(error) => println!("Failed to connect. Error:{}", error)
41//!    }
42//!}
43//!```
44
45#[macro_use]
46extern crate bitflags;
47
48pub mod raw;