1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use std::os::unix::io::RawFd; use crate::sys::io; use super::{Epoll, Token, Ready, EpollOpt}; pub trait Evented { fn add(&self, epoll: &Epoll, token: Token, interest: Ready, opts: EpollOpt) -> io::Result<()>; fn modify(&self, epoll: &Epoll, token: Token, interest: Ready, opts: EpollOpt) -> io::Result<()>; fn delete(&self, epoll: &Epoll) -> io::Result<()>; } impl Evented for RawFd { fn add(&self, epoll: &Epoll, token: Token, interest: Ready, opts: EpollOpt) -> io::Result<()> { epoll.0.add(*self, token, interest, opts) } fn modify(&self, epoll: &Epoll, token: Token, interest: Ready, opts: EpollOpt) -> io::Result<()> { epoll.0.modify(*self, token, interest, opts) } fn delete(&self, epoll: &Epoll) -> io::Result<()> { epoll.0.delete(*self) } }