#[non_exhaustive]pub enum IpVersion {
V4,
V6,
}Expand description
IP version to use for probing
IPv4 is supported on all platforms. IPv6 probing is supported on macOS
(unprivileged DGRAM ICMPv6), Linux (unprivileged UDP with
IPV6_RECVERR by default, ICMPv6 ping sockets where
net.ipv4.ping_group_range permits, raw ICMPv6 as root), Windows
(Icmp6SendEcho2, no elevation required), and the BSDs
(raw ICMPv6, root required — exercised by CI’s FreeBSD VM; OpenBSD/
NetBSD/DragonFly are best-effort and untested); any remaining platform
returns
TracerouteError::Ipv6NotSupported
for IPv6 targets.
This enum is #[non_exhaustive] so downstream matches must include a
wildcard arm.
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.
Trait Implementations§
impl Copy for IpVersion
Source§impl<'de> Deserialize<'de> for IpVersion
impl<'de> Deserialize<'de> for IpVersion
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for IpVersion
impl StructuralPartialEq for IpVersion
Auto Trait Implementations§
impl Freeze for IpVersion
impl RefUnwindSafe for IpVersion
impl Send for IpVersion
impl Sync for IpVersion
impl Unpin for IpVersion
impl UnsafeUnpin for IpVersion
impl UnwindSafe for IpVersion
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