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