cat / goq
clone

turns a linux box into a private steam streaming appliance: plug in, tap your key, play from another computer

fix/release-manifest-language
goq / crates / sigil-protocol / src / error.rs
error.rs 1.7K
1use std::io;23/// Error produced while validating, encoding, or decoding protocol data.4#[derive(Debug, thiserror::Error)]5pub enum ProtocolError {6 #[error("I/O error: {0}")]7 Io(#[from] io::Error),89 #[error("invalid media magic: {0:02x?}")]10 InvalidMediaMagic([u8; 4]),1112 #[error("invalid audio magic: {0:02x?}")]13 InvalidAudioMagic([u8; 4]),1415 #[error("invalid invitation magic: {0:02x?}")]16 InvalidInvitationMagic([u8; 4]),1718 #[error("unsupported protocol version {actual}; expected {expected}")]19 UnsupportedVersion { expected: u16, actual: u16 },2021 #[error("invalid media header length {actual}; expected {expected}")]22 InvalidHeaderLength { expected: u8, actual: u8 },2324 #[error("unsupported media codec {0}")]25 UnsupportedCodec(u8),2627 #[error("unsupported audio codec {0}")]28 UnsupportedAudioCodec(u8),2930 #[error("unsupported media flag bits 0x{0:02x}")]31 UnsupportedFlags(u8),3233 #[error("invalid video dimensions {width}x{height}")]34 InvalidDimensions { width: u16, height: u16 },3536 #[error("media payload length {actual} is invalid; maximum is {maximum}")]37 InvalidMediaPayloadLength { actual: usize, maximum: usize },3839 #[error("audio payload length {actual} is invalid; maximum is {maximum}")]40 InvalidAudioPayloadLength { actual: usize, maximum: usize },4142 #[error("message length {actual} is invalid; maximum is {maximum}")]43 InvalidMessageLength { actual: usize, maximum: usize },4445 #[error("invalid {message_type}: {reason}")]46 InvalidMessage {47 message_type: &'static str,48 reason: &'static str,49 },5051 #[error("invalid JSON message: {0}")]52 Json(#[from] serde_json::Error),53}5455pub type Result<T> = std::result::Result<T, ProtocolError>;