#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("i/o error {0}")]
Io(#[from] std::io::Error),
#[error("internal error")]
Internal,
#[error("operation not supported when input is in-progress")]
InProgress,
#[error("operation not implemented")]
Unimplemented,
}
pub type Result<T, E = Error> = std::result::Result<T, E>;