use std::io;
use std::os::fd::RawFd;
use crate::thin::ThinBoxSubscriber;
use crate::Interest;
pub trait EventpOps: 'static + EventpOpsAdd<Self> + sealed::Sealed + Sized {
#[doc = include_str!("../docs/eventp-ops.modify.md")]
fn modify(&mut self, fd: RawFd, interest: Interest) -> io::Result<()>;
#[doc = include_str!("../docs/eventp-ops.delete.md")]
fn delete(&mut self, fd: RawFd) -> io::Result<()>;
}
pub trait EventpOpsAdd<Ep: EventpOps>: sealed::Sealed {
#[doc = include_str!("../docs/eventp-ops.add.md")]
fn add(&mut self, subscriber: ThinBoxSubscriber<Ep>) -> io::Result<()>;
}
pub(crate) mod sealed {
pub trait Sealed {}
impl Sealed for crate::Eventp {}
impl<Ep: super::EventpOps> Sealed for crate::Pinned<'_, Ep> {}
#[cfg(feature = "mock")]
impl Sealed for crate::mock::MockEventp {}
}