1use anyhow::Error;
10use futures::Future;
11use std::pin::Pin;
12
13mod buffer_strategy;
14mod buffers;
15mod resource;
16mod resource_handle;
17mod resource_table;
18
19pub use buffer_strategy::AdaptiveBufferStrategy;
20pub use buffers::BufMutView;
21pub use buffers::BufMutViewWhole;
22pub use buffers::BufView;
23pub use resource::Resource;
24pub use resource_handle::ResourceHandle;
25pub use resource_handle::ResourceHandleFd;
26pub use resource_handle::ResourceHandleSocket;
27pub use resource_table::ResourceId;
28pub use resource_table::ResourceTable;
29
30pub type AsyncResult<T> = Pin<Box<dyn Future<Output = Result<T, Error>>>>;
32
33pub enum WriteOutcome {
34 Partial { nwritten: usize, view: BufView },
35 Full { nwritten: usize },
36}
37
38impl WriteOutcome {
39 pub fn nwritten(&self) -> usize {
40 match self {
41 WriteOutcome::Partial { nwritten, .. } => *nwritten,
42 WriteOutcome::Full { nwritten } => *nwritten,
43 }
44 }
45}