pub struct CompressionAssign {
pub context_id: VarInt,
pub ip_version: u8,
pub ip_address: Option<IpAddr>,
pub udp_port: Option<u16>,
}Expand description
COMPRESSION_ASSIGN Capsule
Registers a Context ID for either uncompressed or compressed operation.
- IP Version 0 = uncompressed (no IP/port follows)
- IP Version 4 = IPv4 compressed context
- IP Version 6 = IPv6 compressed context
Per the specification, clients allocate even Context IDs and servers allocate odd Context IDs. Context ID 0 is reserved.
Fields§
§context_id: VarIntContext ID (clients allocate even, servers allocate odd)
ip_version: u8IP Version: 0 = uncompressed, 4 = IPv4, 6 = IPv6
ip_address: Option<IpAddr>Target IP address (None if ip_version == 0)
udp_port: Option<u16>Target UDP port in network byte order (None if ip_version == 0)
Implementations§
Source§impl CompressionAssign
impl CompressionAssign
Sourcepub fn uncompressed(context_id: VarInt) -> Self
pub fn uncompressed(context_id: VarInt) -> Self
Create an uncompressed context registration
An uncompressed context allows sending datagrams with inline IP address and port information, suitable for communicating with arbitrary targets.
Sourcepub fn compressed_v4(context_id: VarInt, addr: Ipv4Addr, port: u16) -> Self
pub fn compressed_v4(context_id: VarInt, addr: Ipv4Addr, port: u16) -> Self
Create a compressed context for an IPv4 target
A compressed context registers a specific IPv4 address and port, allowing subsequent datagrams to omit the target information.
Sourcepub fn compressed_v6(context_id: VarInt, addr: Ipv6Addr, port: u16) -> Self
pub fn compressed_v6(context_id: VarInt, addr: Ipv6Addr, port: u16) -> Self
Create a compressed context for an IPv6 target
A compressed context registers a specific IPv6 address and port, allowing subsequent datagrams to omit the target information.
Sourcepub fn is_uncompressed(&self) -> bool
pub fn is_uncompressed(&self) -> bool
Check if this is an uncompressed context
Sourcepub fn target(&self) -> Option<SocketAddr>
pub fn target(&self) -> Option<SocketAddr>
Get the target socket address if this is a compressed context
Trait Implementations§
Source§impl Clone for CompressionAssign
impl Clone for CompressionAssign
Source§fn clone(&self) -> CompressionAssign
fn clone(&self) -> CompressionAssign
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Codec for CompressionAssign
impl Codec for CompressionAssign
Source§impl Debug for CompressionAssign
impl Debug for CompressionAssign
Source§impl PartialEq for CompressionAssign
impl PartialEq for CompressionAssign
impl Eq for CompressionAssign
impl StructuralPartialEq for CompressionAssign
Auto Trait Implementations§
impl Freeze for CompressionAssign
impl RefUnwindSafe for CompressionAssign
impl Send for CompressionAssign
impl Sync for CompressionAssign
impl Unpin for CompressionAssign
impl UnwindSafe for CompressionAssign
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
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
key and return true if they are equal.