#[repr(C)]pub struct IpV6Address { /* private fields */ }Implementations§
Source§impl IpV6Address
impl IpV6Address
Source§impl IpV6Address
impl IpV6Address
Sourcepub const UNSPECIFIED: Self
pub const UNSPECIFIED: Self
An unspecified IpV6Address
pub const fn segments(&self) -> [u16; 8]
Sourcepub const fn unmap(self) -> IpAddress
pub const fn unmap(self) -> IpAddress
Converts the IP address into IPv4 if it is mapped, otherwise the address is unchanged
Sourcepub const fn unicast_scope(self) -> Option<UnicastScope>
pub const fn unicast_scope(self) -> Option<UnicastScope>
Returns the ip::UnicastScope for the given address
See the IANA Registry for more details.
use s2n_quic_core::inet::{IpV4Address, IpV6Address, ip::UnicastScope::*};
assert_eq!(IpV6Address::from([0, 0, 0, 0, 0, 0, 0, 0]).unicast_scope(), None);
assert_eq!(IpV6Address::from([0, 0, 0, 0, 0, 0, 0, 1]).unicast_scope(), Some(Loopback));
assert_eq!(IpV6Address::from([0xff0e, 0, 0, 0, 0, 0, 0, 0]).unicast_scope(), None);
assert_eq!(IpV6Address::from([0xfe80, 0, 0, 0, 0, 0, 0, 0]).unicast_scope(), Some(LinkLocal));
assert_eq!(IpV6Address::from([0xfc02, 0, 0, 0, 0, 0, 0, 0]).unicast_scope(), Some(Private));
// documentation
assert_eq!(IpV6Address::from([0x2001, 0xdb8, 0, 0, 0, 0, 0, 0]).unicast_scope(), None);
// benchmarking
assert_eq!(IpV6Address::from([0x2001, 0x0200, 0, 0, 0, 0, 0, 0]).unicast_scope(), None);
// IPv4-mapped address
assert_eq!(IpV4Address::from([92, 88, 99, 123]).to_ipv6_mapped().unicast_scope(), Some(Global));pub fn with_port(self, port: u16) -> SocketAddressV6
Trait Implementations§
Source§impl Clone for IpV6Address
impl Clone for IpV6Address
Source§fn clone(&self) -> IpV6Address
fn clone(&self) -> IpV6Address
Returns a duplicate of the value. Read more
1.0.0 · 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 IpV6Address
impl Debug for IpV6Address
Source§impl<'a> DecoderValue<'a> for &'a IpV6Addresswhere
IpV6Address: FromBytes,
impl<'a> DecoderValue<'a> for &'a IpV6Addresswhere
IpV6Address: FromBytes,
fn decode(buffer: DecoderBuffer<'a>) -> DecoderBufferResult<'a, Self>
Source§impl<'a> DecoderValue<'a> for IpV6Addresswhere
IpV6Address: FromBytes,
impl<'a> DecoderValue<'a> for IpV6Addresswhere
IpV6Address: FromBytes,
fn decode(buffer: DecoderBuffer<'a>) -> DecoderBufferResult<'a, Self>
Source§impl<'a> DecoderValueMut<'a> for &'a IpV6Addresswhere
IpV6Address: FromBytes,
impl<'a> DecoderValueMut<'a> for &'a IpV6Addresswhere
IpV6Address: FromBytes,
fn decode_mut(buffer: DecoderBufferMut<'a>) -> DecoderBufferMutResult<'a, Self>
Source§impl<'a> DecoderValueMut<'a> for &'a mut IpV6Addresswhere
IpV6Address: FromBytes,
impl<'a> DecoderValueMut<'a> for &'a mut IpV6Addresswhere
IpV6Address: FromBytes,
fn decode_mut(buffer: DecoderBufferMut<'a>) -> DecoderBufferMutResult<'a, Self>
Source§impl<'a> DecoderValueMut<'a> for IpV6Addresswhere
IpV6Address: FromBytes,
impl<'a> DecoderValueMut<'a> for IpV6Addresswhere
IpV6Address: FromBytes,
fn decode_mut(buffer: DecoderBufferMut<'a>) -> DecoderBufferMutResult<'a, Self>
Source§impl Default for IpV6Address
impl Default for IpV6Address
Source§fn default() -> IpV6Address
fn default() -> IpV6Address
Returns the “default value” for a type. Read more
Source§impl Display for IpV6Address
impl Display for IpV6Address
Source§impl<'a> EncoderValue for &'a IpV6Addresswhere
IpV6Address: IntoBytes,
impl<'a> EncoderValue for &'a IpV6Addresswhere
IpV6Address: IntoBytes,
Source§fn encoding_size(&self) -> usize
fn encoding_size(&self) -> usize
Returns the encoding size with no buffer constrains
Source§fn encoding_size_for_encoder<E: Encoder>(&self, _encoder: &E) -> usize
fn encoding_size_for_encoder<E: Encoder>(&self, _encoder: &E) -> usize
Returns the encoding size for the given encoder’s capacity
Source§fn encode_mut<E>(&mut self, encoder: &mut E)where
E: Encoder,
fn encode_mut<E>(&mut self, encoder: &mut E)where
E: Encoder,
Encodes the value into the encoder, while potentially mutating the value itself
Source§fn encode_with_len_prefix<Len, E>(&self, encoder: &mut E)
fn encode_with_len_prefix<Len, E>(&self, encoder: &mut E)
Encodes the value into the encoder with a prefix of
Lenfn encode_to_vec(&self) -> Vec<u8> ⓘ
Source§impl<'a> EncoderValue for &'a mut IpV6Addresswhere
IpV6Address: IntoBytes,
impl<'a> EncoderValue for &'a mut IpV6Addresswhere
IpV6Address: IntoBytes,
Source§fn encoding_size(&self) -> usize
fn encoding_size(&self) -> usize
Returns the encoding size with no buffer constrains
Source§fn encoding_size_for_encoder<E: Encoder>(&self, _encoder: &E) -> usize
fn encoding_size_for_encoder<E: Encoder>(&self, _encoder: &E) -> usize
Returns the encoding size for the given encoder’s capacity
Source§fn encode_mut<E>(&mut self, encoder: &mut E)where
E: Encoder,
fn encode_mut<E>(&mut self, encoder: &mut E)where
E: Encoder,
Encodes the value into the encoder, while potentially mutating the value itself
Source§fn encode_with_len_prefix<Len, E>(&self, encoder: &mut E)
fn encode_with_len_prefix<Len, E>(&self, encoder: &mut E)
Encodes the value into the encoder with a prefix of
Lenfn encode_to_vec(&self) -> Vec<u8> ⓘ
Source§impl EncoderValue for IpV6Addresswhere
IpV6Address: IntoBytes,
impl EncoderValue for IpV6Addresswhere
IpV6Address: IntoBytes,
Source§fn encoding_size(&self) -> usize
fn encoding_size(&self) -> usize
Returns the encoding size with no buffer constrains
Source§fn encoding_size_for_encoder<E: Encoder>(&self, _encoder: &E) -> usize
fn encoding_size_for_encoder<E: Encoder>(&self, _encoder: &E) -> usize
Returns the encoding size for the given encoder’s capacity
Source§fn encode_mut<E>(&mut self, encoder: &mut E)where
E: Encoder,
fn encode_mut<E>(&mut self, encoder: &mut E)where
E: Encoder,
Encodes the value into the encoder, while potentially mutating the value itself
Source§fn encode_with_len_prefix<Len, E>(&self, encoder: &mut E)
fn encode_with_len_prefix<Len, E>(&self, encoder: &mut E)
Encodes the value into the encoder with a prefix of
Lenfn encode_to_vec(&self) -> Vec<u8> ⓘ
Source§impl<'a> From<&'a IpV6Address> for IpAddressRef<'a>
impl<'a> From<&'a IpV6Address> for IpAddressRef<'a>
Source§fn from(ip: &'a IpV6Address) -> Self
fn from(ip: &'a IpV6Address) -> Self
Converts to this type from the input type.
Source§impl From<&Ipv6Addr> for IpV6Address
impl From<&Ipv6Addr> for IpV6Address
Source§impl From<IpV6Address> for [u16; 8]
impl From<IpV6Address> for [u16; 8]
Source§fn from(v: IpV6Address) -> Self
fn from(v: IpV6Address) -> Self
Converts to this type from the input type.
Source§impl From<IpV6Address> for [u8; 16]
impl From<IpV6Address> for [u8; 16]
Source§fn from(v: IpV6Address) -> Self
fn from(v: IpV6Address) -> Self
Converts to this type from the input type.
Source§impl From<IpV6Address> for IpAddress
impl From<IpV6Address> for IpAddress
Source§fn from(ip: IpV6Address) -> Self
fn from(ip: IpV6Address) -> Self
Converts to this type from the input type.
Source§impl From<IpV6Address> for Ipv6Addr
impl From<IpV6Address> for Ipv6Addr
Source§fn from(address: IpV6Address) -> Self
fn from(address: IpV6Address) -> Self
Converts to this type from the input type.
Source§impl From<Ipv6Addr> for IpV6Address
impl From<Ipv6Addr> for IpV6Address
Source§impl FromBytes for IpV6Address
impl FromBytes for IpV6Address
Source§impl FromZeros for IpV6Address
impl FromZeros for IpV6Address
Source§impl Hash for IpV6Address
impl Hash for IpV6Address
Source§impl IntoBytes for IpV6Address
impl IntoBytes for IpV6Address
Source§fn as_mut_bytes(&mut self) -> &mut [u8] ⓘwhere
Self: FromBytes,
fn as_mut_bytes(&mut self) -> &mut [u8] ⓘwhere
Self: FromBytes,
Gets the bytes of this value mutably. Read more
Source§fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>where
Self: Immutable,
fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>where
Self: Immutable,
Source§impl Ord for IpV6Address
impl Ord for IpV6Address
Source§fn cmp(&self, other: &IpV6Address) -> Ordering
fn cmp(&self, other: &IpV6Address) -> Ordering
1.21.0 · 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 PartialEq for IpV6Address
impl PartialEq for IpV6Address
Source§impl PartialOrd for IpV6Address
impl PartialOrd for IpV6Address
Source§impl TryFromBytes for IpV6Address
impl TryFromBytes for IpV6Address
Source§fn try_read_from_bytes(
source: &[u8],
) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>where
Self: Sized,
fn try_read_from_bytes(
source: &[u8],
) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>where
Self: Sized,
Source§fn try_read_from_prefix(
source: &[u8],
) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>where
Self: Sized,
fn try_read_from_prefix(
source: &[u8],
) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>where
Self: Sized,
Source§fn try_read_from_suffix(
source: &[u8],
) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>where
Self: Sized,
fn try_read_from_suffix(
source: &[u8],
) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>where
Self: Sized,
Source§impl Unspecified for IpV6Address
impl Unspecified for IpV6Address
Source§fn is_unspecified(&self) -> bool
fn is_unspecified(&self) -> bool
Returns true if the value is unspecified
Source§fn filter_unspecified(self) -> Option<Self>
fn filter_unspecified(self) -> Option<Self>
Coerce a potentially unspecified value into an
Option<Self>impl Copy for IpV6Address
impl Eq for IpV6Address
impl Immutable for IpV6Address
impl StructuralPartialEq for IpV6Address
impl Unaligned for IpV6Address
Auto Trait Implementations§
impl Freeze for IpV6Address
impl RefUnwindSafe for IpV6Address
impl Send for IpV6Address
impl Sync for IpV6Address
impl Unpin for IpV6Address
impl UnwindSafe for IpV6Address
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<T> PacketPayloadEncoder for Twhere
T: EncoderValue,
impl<T> PacketPayloadEncoder for Twhere
T: EncoderValue,
Source§fn encoding_size_hint<E>(&mut self, encoder: &E, minimum_len: usize) -> usizewhere
E: Encoder,
fn encoding_size_hint<E>(&mut self, encoder: &E, minimum_len: usize) -> usizewhere
E: Encoder,
Returns an estimate of the encoding size of the payload. This
may be inaccurate from what actually is encoded. Estimates should
be less than or equal to what is actually written.
Implementations can return 0 to skip encoding.