use std::num;
use crate::{Cloexec, Errno, io::socket::Setup, table::registry};
pub trait Source {
type Failure<F: From<Errno>>: From<Errno> + Into<F>;
const MAX_IN_FLIGHT: num::NonZero<usize>;
fn is_retryable(error: Errno) -> bool;
fn can_defer(error: Errno) -> bool;
}
#[derive(Debug)]
pub enum Error {
Syscall(Errno),
Registration(registry::Failure),
Cloexec(Cloexec),
Setup(Setup),
Capacity { close: Result<(), Errno> },
}