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;