pub struct Interest(/* private fields */);net, or tokio_unstable and crate feature io-uring and crate feature rt and crate feature fs and Linux only.Expand description
Readiness event interest.
Specifies the readiness events the caller is interested in when awaiting on I/O resource readiness states.
Implementations§
Source§impl Interest
impl Interest
Sourcepub const AIO: Interest
Available on FreeBSD and crate feature net and non-loom only.
pub const AIO: Interest
net and non-loom only.Interest for POSIX AIO.
Sourcepub const LIO: Interest
Available on FreeBSD and crate feature net and non-loom only.
pub const LIO: Interest
net and non-loom only.Interest for POSIX AIO lio_listio events.
Sourcepub const READABLE: Interest
Available on non-loom only.
pub const READABLE: Interest
loom only.Interest in all readable events.
Readable interest includes read-closed events.
Sourcepub const WRITABLE: Interest
Available on non-loom only.
pub const WRITABLE: Interest
loom only.Interest in all writable events.
Writable interest includes write-closed events.
Sourcepub const ERROR: Interest
Available on non-loom only.
pub const ERROR: Interest
loom only.Interest in error events.
Passes error interest to the underlying OS selector. Behavior is platform-specific, read your platform’s documentation.
Sourcepub const PRIORITY: Interest
Available on non-loom and (Linux or Android) only.
pub const PRIORITY: Interest
loom and (Linux or Android) only.Returns a Interest set representing priority completion interests.
Sourcepub const fn is_readable(self) -> bool
Available on non-loom only.
pub const fn is_readable(self) -> bool
loom only.Returns true if the value includes readable interest.
§Examples
use tokio::io::Interest;
assert!(Interest::READABLE.is_readable());
assert!(!Interest::WRITABLE.is_readable());
let both = Interest::READABLE | Interest::WRITABLE;
assert!(both.is_readable());Sourcepub const fn is_writable(self) -> bool
Available on non-loom only.
pub const fn is_writable(self) -> bool
loom only.Returns true if the value includes writable interest.
§Examples
use tokio::io::Interest;
assert!(!Interest::READABLE.is_writable());
assert!(Interest::WRITABLE.is_writable());
let both = Interest::READABLE | Interest::WRITABLE;
assert!(both.is_writable());Sourcepub const fn is_error(self) -> bool
Available on non-loom only.
pub const fn is_error(self) -> bool
loom only.Returns true if the value includes error interest.
§Examples
use tokio::io::Interest;
assert!(Interest::ERROR.is_error());
assert!(!Interest::WRITABLE.is_error());
let combined = Interest::READABLE | Interest::ERROR;
assert!(combined.is_error());Sourcepub const fn is_priority(self) -> bool
Available on non-loom and (Linux or Android) only.
pub const fn is_priority(self) -> bool
loom and (Linux or Android) only.Returns true if the value includes priority interest.
§Examples
use tokio::io::Interest;
assert!(!Interest::READABLE.is_priority());
assert!(Interest::PRIORITY.is_priority());
let both = Interest::READABLE | Interest::PRIORITY;
assert!(both.is_priority());Sourcepub const fn add(self, other: Interest) -> Interest
Available on non-loom only.
pub const fn add(self, other: Interest) -> Interest
loom only.Add together two Interest values.
This function works from a const context.
§Examples
use tokio::io::Interest;
const BOTH: Interest = Interest::READABLE.add(Interest::WRITABLE);
assert!(BOTH.is_readable());
assert!(BOTH.is_writable());Sourcepub fn remove(self, other: Interest) -> Option<Interest>
Available on non-loom only.
pub fn remove(self, other: Interest) -> Option<Interest>
loom only.Remove Interest from self.
Interests present in other but not in self are ignored.
Returns None if the set would be empty after removing Interest.
§Examples
use tokio::io::Interest;
const RW_INTEREST: Interest = Interest::READABLE.add(Interest::WRITABLE);
let w_interest = RW_INTEREST.remove(Interest::READABLE).unwrap();
assert!(!w_interest.is_readable());
assert!(w_interest.is_writable());
// Removing all interests from the set returns `None`.
assert_eq!(w_interest.remove(Interest::WRITABLE), None);
// Remove all interests at once.
assert_eq!(RW_INTEREST.remove(RW_INTEREST), None);Trait Implementations§
Source§impl BitOrAssign for Interest
Available on non-loom only.
impl BitOrAssign for Interest
loom only.Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
|= operation. Read moreimpl Copy for Interest
loom only.impl Eq for Interest
loom only.impl StructuralPartialEq for Interest
loom only.Auto Trait Implementations§
impl Freeze for Interest
loom only.impl RefUnwindSafe for Interest
loom only.impl Send for Interest
loom only.impl Sync for Interest
loom only.impl Unpin for Interest
loom only.impl UnsafeUnpin for Interest
loom only.impl UnwindSafe for Interest
loom only.Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Available on non-loom only.
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
loom only.Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
Available on non-loom only.
impl<T> CloneToUninit for Twhere
T: Clone,
loom only.§impl<T> Instrument for T
Available on non-loom only.
impl<T> Instrument for T
loom only.§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§impl<T> WithSubscriber for T
Available on non-loom only.
impl<T> WithSubscriber for T
loom only.