// Re-export the io::Result / Error types for convenience
// pub use std::io::{Error, ErrorKind, Read, Result, Write};
#[cfg(not(target_os ="windows"))]pubusestd::io::ErrorKind;pubusestd::io::Result;// TODO: Delete this
/// A helper trait to provide the map_non_block function on Results.
pubtraitMapNonBlock<T> {#[allow(dead_code)]fnmap_non_block(self)->Result<Option<T>>;}impl<T>MapNonBlock<T>forResult<T>{fnmap_non_block(self)->Result<Option<T>>{usestd::io::ErrorKind::WouldBlock;matchself{Ok(value)=>Ok(Some(value)),Err(err)=>{iflet WouldBlock = err.kind(){Ok(None)}else{Err(err)}}}}}