#[non_exhaustive]pub enum ControlPacket<'a> {
Handshake(HandshakePacket<'a>),
KeepAlive(KeepAlivePacket),
Ack(AckPacket),
Nak(NakPacket<'a>),
CongestionWarning(CongestionWarningPacket),
Shutdown(ShutdownPacket),
AckAck(AckAckPacket),
DropReq(DropReqPacket),
PeerError(PeerErrorPacket),
UserDefined(UserDefinedPacket<'a>),
}Expand description
An SRT control packet (draft-sharabayko-srt-01 §3.2).
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.
Handshake(HandshakePacket<'a>)
Handshake (§3.2.1).
KeepAlive(KeepAlivePacket)
Keep-Alive (§3.2.3).
Ack(AckPacket)
ACK (§3.2.4).
Nak(NakPacket<'a>)
NAK / Loss Report (§3.2.5).
CongestionWarning(CongestionWarningPacket)
Congestion Warning (§3.2.6).
Shutdown(ShutdownPacket)
Shutdown (§3.2.7).
AckAck(AckAckPacket)
ACKACK (§3.2.8).
DropReq(DropReqPacket)
Message Drop Request (§3.2.9).
PeerError(PeerErrorPacket)
Peer Error (§3.2.10).
UserDefined(UserDefinedPacket<'a>)
User-Defined Type, or a Control Type Table 1 does not define.
Implementations§
Source§impl<'a> ControlPacket<'a>
impl<'a> ControlPacket<'a>
Sourcepub fn parse(bytes: &'a [u8]) -> Result<Self>
pub fn parse(bytes: &'a [u8]) -> Result<Self>
Parse a control packet from bytes (the full SRT packet).
§Errors
Error::BufferTooShort if shorter than the 16-byte header;
Error::WrongPacketKind if the F bit is clear (this is a data
packet); type-specific errors from the dispatched CIF parser.
Sourcepub fn control_type(&self) -> ControlType
pub fn control_type(&self) -> ControlType
The Control Type this packet carries.
Sourcepub fn serialized_len(&self) -> usize
pub fn serialized_len(&self) -> usize
Number of bytes Self::serialize_into will write.
Sourcepub fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
pub fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
Serialize this control packet into buf.
Trait Implementations§
Source§impl<'a> Clone for ControlPacket<'a>
impl<'a> Clone for ControlPacket<'a>
Source§fn clone(&self) -> ControlPacket<'a>
fn clone(&self) -> ControlPacket<'a>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'a> Debug for ControlPacket<'a>
impl<'a> Debug for ControlPacket<'a>
Source§impl<'a> PartialEq for ControlPacket<'a>
impl<'a> PartialEq for ControlPacket<'a>
Source§fn eq(&self, other: &ControlPacket<'a>) -> bool
fn eq(&self, other: &ControlPacket<'a>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<'a> Serialize for ControlPacket<'a>
impl<'a> Serialize for ControlPacket<'a>
impl<'a> StructuralPartialEq for ControlPacket<'a>
Auto Trait Implementations§
impl<'a> Freeze for ControlPacket<'a>
impl<'a> RefUnwindSafe for ControlPacket<'a>
impl<'a> Send for ControlPacket<'a>
impl<'a> Sync for ControlPacket<'a>
impl<'a> Unpin for ControlPacket<'a>
impl<'a> UnsafeUnpin for ControlPacket<'a>
impl<'a> UnwindSafe for ControlPacket<'a>
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