1 use crate::amf0::errors::Amf0ReadError; 2 use crate::protocol_control_messages::errors::ProtocolControlMessageReaderError; 3 use netio::bytes_errors::BytesReadError; 4 5 pub enum MessageErrorValue { 6 BytesReadError(BytesReadError), 7 UnknowReadState, 8 Amf0ReadError(Amf0ReadError), 9 UnknowMessageType, 10 ProtocolControlMessageReaderError(ProtocolControlMessageReaderError), 11 //IO(io::Error), 12 } 13 14 pub struct MessageError { 15 pub value: MessageErrorValue, 16 } 17 18 impl From<MessageErrorValue> for MessageError { 19 fn from(val: MessageErrorValue) -> Self { 20 MessageError { value: val } 21 } 22 } 23 24 impl From<BytesReadError> for MessageError { 25 fn from(error: BytesReadError) -> Self { 26 MessageError { 27 value: MessageErrorValue::BytesReadError(error), 28 } 29 } 30 } 31 32 impl From<Amf0ReadError> for MessageError { 33 fn from(error: Amf0ReadError) -> Self { 34 MessageError { 35 value: MessageErrorValue::Amf0ReadError(error), 36 } 37 } 38 } 39 40 impl From<ProtocolControlMessageReaderError> for MessageError { 41 fn from(error: ProtocolControlMessageReaderError) -> Self { 42 MessageError { 43 value: MessageErrorValue::ProtocolControlMessageReaderError(error), 44 } 45 } 46 } 47