1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
use thiserror::Error; #[derive(Debug, Error, PartialEq)] pub enum Error { #[error( "DataChannel message is not long enough to determine type: (expected: {expected}, actual: {actual})" )] UnexpectedEndOfBuffer { expected: usize, actual: usize }, #[error("Unknown MessageType {0}")] InvalidMessageType(u8), #[error("Unknown ChannelType {0}")] InvalidChannelType(u8), #[error("Unknown PayloadProtocolIdentifier {0}")] InvalidPayloadProtocolIdentifier(u8), #[error("Stream closed")] ErrStreamClosed, #[allow(non_camel_case_types)] #[error("{0}")] new(String), } impl Error { pub fn equal(&self, err: &anyhow::Error) -> bool { err.downcast_ref::<Self>().map_or(false, |e| e == self) } }