impl PollTimeout { /// Blocks indefinitely. /// /// > Specifying a negative value in timeout means an infinite timeout. pubconst NONE: Self = Self(-1); /// Returns immediately. /// /// > Specifying a timeout of zero causes poll() to return immediately, even if no file /// > descriptors are ready. pubconst ZERO: Self = Self(0); /// Blocks for at most [`i32::MAX`] milliseconds. pubconst MAX: Self = Self(i32::MAX); /// Returns if `self` equals [`PollTimeout::NONE`]. pubfn is_none(&self) -> bool { // > Specifying a negative value in timeout means an infinite timeout.
*self <= Self::NONE
} /// Returns if `self` does not equal [`PollTimeout::NONE`]. pubfn is_some(&self) -> bool {
!self.is_none()
} /// Returns the timeout in milliseconds if there is some, otherwise returns `None`. pubfn as_millis(&self) -> Option<u32> { self.is_some().then_some(u32::try_from(self.0).unwrap())
} /// Returns the timeout as a `Duration` if there is some, otherwise returns `None`. pubfn duration(&self) -> Option<Duration> { self.as_millis()
.map(|x| Duration::from_millis(u64::from(x)))
}
}
/// Error type for integer conversions into `PollTimeout`. #[derive(Debug, Clone, Copy, PartialEq, Eq)] pubenum PollTimeoutTryFromError { /// Passing a value less than -1 is invalid on some systems, see /// <https://man.freebsd.org/cgi/man.cgi?poll#end>.
TooNegative, /// Passing a value greater than `i32::MAX` is invalid.
TooPositive,
}
impl std::fmt::Display for PollTimeoutTryFromError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { matchself { Self::TooNegative => write!(f, "Passed a negative timeout less than -1."), Self::TooPositive => write!(f, "Passed a positive timeout greater than `i32::MAX` milliseconds.")
}
}
}
impl std::error::Error for PollTimeoutTryFromError {}
impl<T: Into<PollTimeout>> From<Option<T>> for PollTimeout { fn from(x: Option<T>) -> Self {
x.map_or(Self::NONE, |x| x.into())
}
} impl TryFrom<Duration> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: Duration) -> std::result::Result<Self, Self::Error> {
Ok(Self(
i32::try_from(x.as_millis())
.map_err(|_| PollTimeoutTryFromError::TooPositive)?,
))
}
} impl TryFrom<u128> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: u128) -> std::result::Result<Self, Self::Error> {
Ok(Self(
i32::try_from(x)
.map_err(|_| PollTimeoutTryFromError::TooPositive)?,
))
}
} impl TryFrom<u64> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: u64) -> std::result::Result<Self, Self::Error> {
Ok(Self(
i32::try_from(x)
.map_err(|_| PollTimeoutTryFromError::TooPositive)?,
))
}
} impl TryFrom<u32> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: u32) -> std::result::Result<Self, Self::Error> {
Ok(Self(
i32::try_from(x)
.map_err(|_| PollTimeoutTryFromError::TooPositive)?,
))
}
} impl From<u16> for PollTimeout { fn from(x: u16) -> Self { Self(i32::from(x))
}
} impl From<u8> for PollTimeout { fn from(x: u8) -> Self { Self(i32::from(x))
}
} impl TryFrom<i128> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: i128) -> std::result::Result<Self, Self::Error> { match x {
..=-2 => Err(PollTimeoutTryFromError::TooNegative),
-1.. => Ok(Self(
i32::try_from(x)
.map_err(|_| PollTimeoutTryFromError::TooPositive)?,
)),
}
}
} impl TryFrom<i64> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: i64) -> std::result::Result<Self, Self::Error> { match x {
..=-2 => Err(PollTimeoutTryFromError::TooNegative),
-1.. => Ok(Self(
i32::try_from(x)
.map_err(|_| PollTimeoutTryFromError::TooPositive)?,
)),
}
}
} impl TryFrom<i32> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: i32) -> std::result::Result<Self, Self::Error> { match x {
..=-2 => Err(PollTimeoutTryFromError::TooNegative),
-1.. => Ok(Self(x)),
}
}
} impl TryFrom<i16> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: i16) -> std::result::Result<Self, Self::Error> { match x {
..=-2 => Err(PollTimeoutTryFromError::TooNegative),
-1.. => Ok(Self(i32::from(x))),
}
}
} impl TryFrom<i8> for PollTimeout { type Error = PollTimeoutTryFromError; fn try_from(x: i8) -> std::result::Result<Self, Self::Error> { match x {
..=-2 => Err(PollTimeoutTryFromError::TooNegative),
-1.. => Ok(Self(i32::from(x))),
}
}
} impl TryFrom<PollTimeout> for Duration { type Error = (); fn try_from(x: PollTimeout) -> std::result::Result<Self, ()> {
x.duration().ok_or(())
}
} impl TryFrom<PollTimeout> for u128 { type Error = <Selfas TryFrom<i32>>::Error; fn try_from(x: PollTimeout) -> std::result::Result<Self, Self::Error> { Self::try_from(x.0)
}
} impl TryFrom<PollTimeout> for u64 { type Error = <Selfas TryFrom<i32>>::Error; fn try_from(x: PollTimeout) -> std::result::Result<Self, Self::Error> { Self::try_from(x.0)
}
} impl TryFrom<PollTimeout> for u32 { type Error = <Selfas TryFrom<i32>>::Error; fn try_from(x: PollTimeout) -> std::result::Result<Self, Self::Error> { Self::try_from(x.0)
}
} impl TryFrom<PollTimeout> for u16 { type Error = <Selfas TryFrom<i32>>::Error; fn try_from(x: PollTimeout) -> std::result::Result<Self, Self::Error> { Self::try_from(x.0)
}
} impl TryFrom<PollTimeout> for u8 { type Error = <Selfas TryFrom<i32>>::Error; fn try_from(x: PollTimeout) -> std::result::Result<Self, Self::Error> { Self::try_from(x.0)
}
} impl From<PollTimeout> for i128 { fn from(x: PollTimeout) -> Self { Self::from(x.0)
}
} impl From<PollTimeout> for i64 { fn from(x: PollTimeout) -> Self { Self::from(x.0)
}
} impl From<PollTimeout> for i32 { fn from(x: PollTimeout) -> Self {
x.0
}
} impl TryFrom<PollTimeout> for i16 { type Error = <Selfas TryFrom<i32>>::Error; fn try_from(x: PollTimeout) -> std::result::Result<Self, Self::Error> { Self::try_from(x.0)
}
} impl TryFrom<PollTimeout> for i8 { type Error = <Selfas TryFrom<i32>>::Error; fn try_from(x: PollTimeout) -> std::result::Result<Self, Self::Error> { Self::try_from(x.0)
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.47 Sekunden
(vorverarbeitet am 2026-06-18)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.