Struct SourceFd
pub struct SourceFd<'a>(pub &'a RawFd);
Adapter for RawFd providing an event::Source implementation.
SourceFd enables registering any type with an FD with Poll.
While only implementations for TCP and UDP are provided, Mio supports
registering any FD that can be registered with the underlying OS selector.
SourceFd provides the necessary bridge.
Note that SourceFd takes a &RawFd. This is because SourceFd does
not take ownership of the FD. Specifically, it will not manage any
lifecycle related operations, such as closing the FD on drop. It is expected
that the SourceFd is constructed right before a call to
Registry::register. See the examples for more detail.
Examples
Basic usage.
# use Error;
#
Implementing event::Source for a custom type backed by a RawFd.
use ;
use SourceFd;
use SourceFd;
use RawFd;
use io;
#
Fields
0: &'a RawFd
Trait Implementations
impl<'a> Debug for SourceFd<'a>
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<'a> Source for SourceFd<'a>
fn register(&mut self, registry: &Registry, token: Token, interests: Interest) -> Result<()>fn reregister(&mut self, registry: &Registry, token: Token, interests: Interest) -> Result<()>fn deregister(&mut self, registry: &Registry) -> Result<()>
Auto Trait Implementations
impl<'a> Freeze for SourceFd<'a>
impl<'a> RefUnwindSafe for SourceFd<'a>
impl<'a> Send for SourceFd<'a>
impl<'a> Sync for SourceFd<'a>
impl<'a> Unpin for SourceFd<'a>
impl<'a> UnsafeUnpin for SourceFd<'a>
impl<'a> UnwindSafe for SourceFd<'a>
Blanket Implementations
impl<T> Any for SourceFd<'a>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for SourceFd<'a>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for SourceFd<'a>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for SourceFd<'a>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into<U> for SourceFd<'a>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for SourceFd<'a>
where
U: Into<T>,
type Error = Infallible;fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for SourceFd<'a>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>