#[non_exhaustive]pub enum PortState {
ClosedFiltered,
Filtered,
Unfiltered,
Closed,
OpenFiltered,
Open,
}Expand description
The reachability state of a specific port.
The order of these variants is strictly defined from least definitive to
most definitive. This allows Port::merge() to automatically upgrade
ambiguous states into concrete ones using standard Ord comparisons.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
ClosedFiltered
State is ambiguous; port is either closed or filtered (e.g., IP ID idle scan).
Filtered
Packets are being dropped silently by a firewall. We received no response.
Unfiltered
Target is accessible, but we cannot determine if it is open or closed (e.g., TCP ACK scan).
Closed
Actively rejecting connections (e.g., TCP RST received).
OpenFiltered
State is ambiguous; port might be open, or packets might be silently dropped (e.g., UDP scan).
Open
Actively accepting connections (e.g., TCP SYN/ACK received).
Trait Implementations§
impl Copy for PortState
impl Eq for PortState
Source§impl Ord for PortState
impl Ord for PortState
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialOrd for PortState
impl PartialOrd for PortState
impl StructuralPartialEq for PortState
Auto Trait Implementations§
impl Freeze for PortState
impl RefUnwindSafe for PortState
impl Send for PortState
impl Sync for PortState
impl Unpin for PortState
impl UnsafeUnpin for PortState
impl UnwindSafe for PortState
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> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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