#[macro_use]
extern crate log;
extern crate libc;
extern crate errno;
extern crate openssl;
#[macro_use]
extern crate bitflags;
use std::io::Error;
use frame::Frame;
pub use plain::*;
pub use socket::*;
pub use secure::*;
pub mod frame;
mod socket;
mod plain;
mod secure;
pub trait Blocking {
fn b_recv(&mut self) -> Result<Box<Frame>, Error>;
fn b_send(&mut self, frame: &Frame) -> Result<(), Error>;
}
pub trait NonBlocking {
fn nb_recv(&mut self) -> Result<Vec<Box<Frame>>, Error>;
fn nb_send(&mut self, frame: &Frame) -> Result<(), Error>;
}