#![deny(missing_docs)]
mod arrays;
mod bool;
pub mod collections;
pub mod numbers;
mod text;
mod wrappers;
#[cfg(feature = "derive")]
pub use data_stream_derive::{FromStream, ToStream};
use std::io::{Read, Result, Write};
pub trait ToStream<S> {
fn to_stream<W: Write>(&self, stream: &mut W) -> Result<()>;
}
pub trait FromStream<S>: Sized {
fn from_stream<R: Read>(stream: &mut R) -> Result<Self>;
}
#[inline(always)]
pub fn to_stream<S, V: ToStream<S> + ?Sized, W: Write>(value: &V, stream: &mut W) -> Result<()> {
value.to_stream(stream)
}
#[inline(always)]
pub fn from_stream<S, V: FromStream<S>, R: Read>(stream: &mut R) -> Result<V> {
V::from_stream(stream)
}
pub mod default_settings;