pub struct Handshake<DCID, SCID, PacketNumber, Payload> {
pub version: u32,
pub destination_connection_id: DCID,
pub source_connection_id: SCID,
pub packet_number: PacketNumber,
pub payload: Payload,
}Fields
version: u32destination_connection_id: DCIDsource_connection_id: SCIDpacket_number: PacketNumberpayload: PayloadImplementations
sourceimpl<'a> Handshake<CheckedRange, CheckedRange, ProtectedPacketNumber, ProtectedPayload<'a>>
impl<'a> Handshake<CheckedRange, CheckedRange, ProtectedPacketNumber, ProtectedPayload<'a>>
pub fn unprotect<K: HandshakeHeaderKey>(
self,
key: &K,
largest_acknowledged_packet_number: PacketNumber
) -> Result<EncryptedHandshake<'a>, CryptoError>
pub fn destination_connection_id(&self) -> &[u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
pub fn source_connection_id(&self) -> &[u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
sourceimpl<'a> Handshake<CheckedRange, CheckedRange, PacketNumber, EncryptedPayload<'a>>
impl<'a> Handshake<CheckedRange, CheckedRange, PacketNumber, EncryptedPayload<'a>>
pub fn decrypt<C: HandshakeKey>(
self,
crypto: &C
) -> Result<CleartextHandshake<'a>, Error>
pub fn destination_connection_id(&self) -> &[u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
pub fn source_connection_id(&self) -> &[u8]ⓘNotable traits for &[u8]impl<'_> Read for &[u8]impl<'_> Write for &mut [u8]
pub fn key_phase(&self) -> KeyPhase
sourceimpl<'a> Handshake<&'a [u8], &'a [u8], PacketNumber, DecoderBufferMut<'a>>
impl<'a> Handshake<&'a [u8], &'a [u8], PacketNumber, DecoderBufferMut<'a>>
Trait Implementations
sourceimpl<DCID: Debug, SCID: Debug, PacketNumber: Debug, Payload: Debug> Debug for Handshake<DCID, SCID, PacketNumber, Payload>
impl<DCID: Debug, SCID: Debug, PacketNumber: Debug, Payload: Debug> Debug for Handshake<DCID, SCID, PacketNumber, Payload>
sourceimpl<DCID: EncoderValue, SCID: EncoderValue, Payload: EncoderValue> EncoderValue for Handshake<DCID, SCID, TruncatedPacketNumber, Payload>
impl<DCID: EncoderValue, SCID: EncoderValue, Payload: EncoderValue> EncoderValue for Handshake<DCID, SCID, TruncatedPacketNumber, Payload>
sourcefn 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
sourcefn encoding_size(&self) -> usize
fn encoding_size(&self) -> usize
Returns the encoding size with no buffer constrains
sourcefn encoding_size_for_encoder<E>(&self, encoder: &E) -> usize where
E: Encoder,
fn encoding_size_for_encoder<E>(&self, encoder: &E) -> usize where
E: Encoder,
Returns the encoding size for the given encoder’s capacity
sourceimpl<DCID: EncoderValue, SCID: EncoderValue, Payload: PacketPayloadEncoder, K: HandshakeKey, H: HandshakeHeaderKey> PacketEncoder<K, H, Payload> for Handshake<DCID, SCID, PacketNumber, Payload>
impl<DCID: EncoderValue, SCID: EncoderValue, Payload: PacketPayloadEncoder, K: HandshakeKey, H: HandshakeHeaderKey> PacketEncoder<K, H, Payload> for Handshake<DCID, SCID, PacketNumber, Payload>
type PayloadLenCursor = LongPayloadLenCursor
sourcefn packet_number(&self) -> PacketNumber
fn packet_number(&self) -> PacketNumber
Returns the packet number for the current packet
sourcefn encode_header<E: Encoder>(
&self,
packet_number_len: PacketNumberLen,
encoder: &mut E
)
fn encode_header<E: Encoder>(
&self,
packet_number_len: PacketNumberLen,
encoder: &mut E
)
Encodes the current packet’s header into the provided encoder
fn encode_packet<'a>(
self,
key: &K,
header_key: &H,
largest_acknowledged_packet_number: PacketNumber,
min_packet_len: Option<usize>,
buffer: EncoderBuffer<'a>
) -> Result<(ProtectedPayload<'a>, EncoderBuffer<'a>), PacketEncodingError<'a>>
Auto Trait Implementations
impl<DCID, SCID, PacketNumber, Payload> RefUnwindSafe for Handshake<DCID, SCID, PacketNumber, Payload> where
DCID: RefUnwindSafe,
PacketNumber: RefUnwindSafe,
Payload: RefUnwindSafe,
SCID: RefUnwindSafe,
impl<DCID, SCID, PacketNumber, Payload> Send for Handshake<DCID, SCID, PacketNumber, Payload> where
DCID: Send,
PacketNumber: Send,
Payload: Send,
SCID: Send,
impl<DCID, SCID, PacketNumber, Payload> Sync for Handshake<DCID, SCID, PacketNumber, Payload> where
DCID: Sync,
PacketNumber: Sync,
Payload: Sync,
SCID: Sync,
impl<DCID, SCID, PacketNumber, Payload> Unpin for Handshake<DCID, SCID, PacketNumber, Payload> where
DCID: Unpin,
PacketNumber: Unpin,
Payload: Unpin,
SCID: Unpin,
impl<DCID, SCID, PacketNumber, Payload> UnwindSafe for Handshake<DCID, SCID, PacketNumber, Payload> where
DCID: UnwindSafe,
PacketNumber: UnwindSafe,
Payload: UnwindSafe,
SCID: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> PacketPayloadEncoder for T where
T: EncoderValue,
impl<T> PacketPayloadEncoder for T where
T: EncoderValue,
sourcefn encoding_size_hint<E>(&mut self, encoder: &E, minimum_len: usize) -> usize where
E: Encoder,
fn encoding_size_hint<E>(&mut self, encoder: &E, minimum_len: usize) -> usize where
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. Read more