use anyhow::Error;
use futures::Future;
use std::pin::Pin;
mod buffer_strategy;
mod buffers;
mod resource;
mod resource_handle;
mod resource_table;
pub use buffer_strategy::AdaptiveBufferStrategy;
pub use buffers::BufMutView;
pub use buffers::BufMutViewWhole;
pub use buffers::BufView;
pub use resource::Resource;
pub use resource_handle::ResourceHandle;
pub use resource_handle::ResourceHandleFd;
pub use resource_handle::ResourceHandleSocket;
pub use resource_table::ResourceId;
pub use resource_table::ResourceTable;
pub type AsyncResult<T> = Pin<Box<dyn Future<Output = Result<T, Error>>>>;
pub enum WriteOutcome {
Partial { nwritten: usize, view: BufView },
Full { nwritten: usize },
}
impl WriteOutcome {
pub fn nwritten(&self) -> usize {
match self {
WriteOutcome::Partial { nwritten, .. } => *nwritten,
WriteOutcome::Full { nwritten } => *nwritten,
}
}
}