1 use crate::amf0::errors::Amf0WriteError; 2 use crate::chunk::errors::PackError; 3 use crate::chunk::errors::UnpackError; 4 use crate::handshake::errors::HandshakeError; 5 use crate::messages::errors::MessageError; 6 use crate::netconnection::errors::NetConnectionError; 7 use crate::netstream::errors::NetStreamError; 8 use crate::protocol_control_messages::errors::ControlMessagesError; 9 use crate::user_control_messages::errors::EventMessagesError; 10 11 use netio::bytes_errors::BytesWriteError; 12 use netio::netio_errors::NetIOError; 13 14 use tokio::time::Elapsed; 15 16 pub struct SessionError { 17 pub value: SessionErrorValue, 18 } 19 20 pub enum SessionErrorValue { 21 Amf0WriteError(Amf0WriteError), 22 BytesWriteError(BytesWriteError), 23 TimeoutError(Elapsed), 24 UnPackError(UnpackError), 25 MessageError(MessageError), 26 ControlMessagesError(ControlMessagesError), 27 NetConnectionError(NetConnectionError), 28 NetStreamError(NetStreamError), 29 EventMessagesError(EventMessagesError), 30 NetIOError(NetIOError), 31 PackError(PackError), 32 HandshakeError(HandshakeError), 33 34 Amf0ValueCountNotCorrect, 35 Amf0ValueTypeNotCorrect, 36 ChannelEventSendErr, 37 NoneChannelDataSender, 38 NoneChannelDataReceiver, 39 SendChannelDataErr, 40 41 NoAppName, 42 } 43 44 impl From<Amf0WriteError> for SessionError { 45 fn from(error: Amf0WriteError) -> Self { 46 SessionError { 47 value: SessionErrorValue::Amf0WriteError(error), 48 } 49 } 50 } 51 52 impl From<BytesWriteError> for SessionError { 53 fn from(error: BytesWriteError) -> Self { 54 SessionError { 55 value: SessionErrorValue::BytesWriteError(error), 56 } 57 } 58 } 59 60 impl From<Elapsed> for SessionError { 61 fn from(error: Elapsed) -> Self { 62 SessionError { 63 value: SessionErrorValue::TimeoutError(error), 64 } 65 } 66 } 67 68 impl From<UnpackError> for SessionError { 69 fn from(error: UnpackError) -> Self { 70 SessionError { 71 value: SessionErrorValue::UnPackError(error), 72 } 73 } 74 } 75 76 impl From<MessageError> for SessionError { 77 fn from(error: MessageError) -> Self { 78 SessionError { 79 value: SessionErrorValue::MessageError(error), 80 } 81 } 82 } 83 84 impl From<ControlMessagesError> for SessionError { 85 fn from(error: ControlMessagesError) -> Self { 86 SessionError { 87 value: SessionErrorValue::ControlMessagesError(error), 88 } 89 } 90 } 91 92 impl From<NetConnectionError> for SessionError { 93 fn from(error: NetConnectionError) -> Self { 94 SessionError { 95 value: SessionErrorValue::NetConnectionError(error), 96 } 97 } 98 } 99 100 impl From<NetStreamError> for SessionError { 101 fn from(error: NetStreamError) -> Self { 102 SessionError { 103 value: SessionErrorValue::NetStreamError(error), 104 } 105 } 106 } 107 108 impl From<EventMessagesError> for SessionError { 109 fn from(error: EventMessagesError) -> Self { 110 SessionError { 111 value: SessionErrorValue::EventMessagesError(error), 112 } 113 } 114 } 115 116 impl From<NetIOError> for SessionError { 117 fn from(error: NetIOError) -> Self { 118 SessionError { 119 value: SessionErrorValue::NetIOError(error), 120 } 121 } 122 } 123 124 impl From<PackError> for SessionError { 125 fn from(error: PackError) -> Self { 126 SessionError { 127 value: SessionErrorValue::PackError(error), 128 } 129 } 130 } 131 132 impl From<HandshakeError> for SessionError { 133 fn from(error: HandshakeError) -> Self { 134 SessionError { 135 value: SessionErrorValue::HandshakeError(error), 136 } 137 } 138 } 139