pub struct StatusReason {
pub protocol: StatusProtocol,
pub details: Option<Arc<str>>,
}Expand description
A structured rationale for a host’s reachability state.
StatusReason pairs a protocol event with optional human-readable or machine-parsable
details to provide a transparent “audit trail” for host discovery.
Fields§
§protocol: StatusProtocolThe specific protocol-level event that triggered this status.
details: Option<Arc<str>>Extended details about the response (e.g., “Received TCP RST”, “TTL Exceeded in transit”).
Stored as an Arc<str> to minimize heap churn when thousands of hosts report
identical rationales.
Implementations§
Source§impl StatusReason
impl StatusReason
Sourcepub fn new(protocol: StatusProtocol, details: impl Into<Arc<str>>) -> Self
pub fn new(protocol: StatusProtocol, details: impl Into<Arc<str>>) -> Self
Creates a new StatusReason with the specified protocol and details.
Sourcepub fn basic(protocol: StatusProtocol) -> Self
pub fn basic(protocol: StatusProtocol) -> Self
Creates a new StatusReason containing only protocol-level evidence without extra details.
Trait Implementations§
Source§impl Clone for StatusReason
impl Clone for StatusReason
Source§fn clone(&self) -> StatusReason
fn clone(&self) -> StatusReason
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StatusReason
impl Debug for StatusReason
impl Eq for StatusReason
Source§impl Hash for StatusReason
impl Hash for StatusReason
Source§impl PartialEq for StatusReason
impl PartialEq for StatusReason
impl StructuralPartialEq for StatusReason
Auto Trait Implementations§
impl Freeze for StatusReason
impl RefUnwindSafe for StatusReason
impl Send for StatusReason
impl Sync for StatusReason
impl Unpin for StatusReason
impl UnsafeUnpin for StatusReason
impl UnwindSafe for StatusReason
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more