145abfa1fSHarlanC use { 245abfa1fSHarlanC failure::{Backtrace, Fail}, 388325f54SHarlanC bytesio::bytes_errors::{BytesReadError, BytesWriteError}, 445abfa1fSHarlanC std::fmt, 545abfa1fSHarlanC }; 6c2f3fbfaSHarlanC 7c2f3fbfaSHarlanC #[derive(Debug)] 808c16cccSHarlanC pub struct ControlMessagesError { 908c16cccSHarlanC pub value: ControlMessagesErrorValue, 1008c16cccSHarlanC } 1108c16cccSHarlanC 12c2f3fbfaSHarlanC #[derive(Debug, Fail)] 1308c16cccSHarlanC pub enum ControlMessagesErrorValue { 14ee695b48SHarlanC //Amf0WriteError(Amf0WriteError), 15*69de9bbdSHarlanC #[fail(display = "bytes write error: {}", _0)] 164ff0d3acSHarlanC BytesWriteError(BytesWriteError), 1708c16cccSHarlanC } 1808c16cccSHarlanC 194ff0d3acSHarlanC impl From<BytesWriteError> for ControlMessagesError { from(error: BytesWriteError) -> Self204ff0d3acSHarlanC fn from(error: BytesWriteError) -> Self { 2108c16cccSHarlanC ControlMessagesError { 224ff0d3acSHarlanC value: ControlMessagesErrorValue::BytesWriteError(error), 2308c16cccSHarlanC } 2408c16cccSHarlanC } 2508c16cccSHarlanC } 26ee695b48SHarlanC 27c2f3fbfaSHarlanC impl fmt::Display for ControlMessagesError { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result28c2f3fbfaSHarlanC fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 29c2f3fbfaSHarlanC fmt::Display::fmt(&self.value, f) 30c2f3fbfaSHarlanC } 31c2f3fbfaSHarlanC } 32c2f3fbfaSHarlanC 33c2f3fbfaSHarlanC impl Fail for ControlMessagesError { cause(&self) -> Option<&dyn Fail>34c2f3fbfaSHarlanC fn cause(&self) -> Option<&dyn Fail> { 35c2f3fbfaSHarlanC self.value.cause() 36c2f3fbfaSHarlanC } 37c2f3fbfaSHarlanC backtrace(&self) -> Option<&Backtrace>38c2f3fbfaSHarlanC fn backtrace(&self) -> Option<&Backtrace> { 39c2f3fbfaSHarlanC self.value.backtrace() 40c2f3fbfaSHarlanC } 41c2f3fbfaSHarlanC } 42c2f3fbfaSHarlanC 43c2f3fbfaSHarlanC #[derive(Debug)] 44ee695b48SHarlanC pub struct ProtocolControlMessageReaderError { 458a60cc5aSHarlanC pub value: ProtocolControlMessageReaderErrorValue, 468a60cc5aSHarlanC } 47ee695b48SHarlanC 48c2f3fbfaSHarlanC #[derive(Debug, Fail)] 498a60cc5aSHarlanC pub enum ProtocolControlMessageReaderErrorValue { 50*69de9bbdSHarlanC #[fail(display = "bytes read error: {}", _0)] 514ff0d3acSHarlanC BytesReadError(BytesReadError), 528a60cc5aSHarlanC } 538a60cc5aSHarlanC 544ff0d3acSHarlanC impl From<BytesReadError> for ProtocolControlMessageReaderError { from(error: BytesReadError) -> Self554ff0d3acSHarlanC fn from(error: BytesReadError) -> Self { 568a60cc5aSHarlanC ProtocolControlMessageReaderError { 574ff0d3acSHarlanC value: ProtocolControlMessageReaderErrorValue::BytesReadError(error), 588a60cc5aSHarlanC } 598a60cc5aSHarlanC } 60ee695b48SHarlanC } 61c2f3fbfaSHarlanC 62c2f3fbfaSHarlanC impl fmt::Display for ProtocolControlMessageReaderError { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result63c2f3fbfaSHarlanC fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 64c2f3fbfaSHarlanC fmt::Display::fmt(&self.value, f) 65c2f3fbfaSHarlanC } 66c2f3fbfaSHarlanC } 67c2f3fbfaSHarlanC 68c2f3fbfaSHarlanC impl Fail for ProtocolControlMessageReaderError { cause(&self) -> Option<&dyn Fail>69c2f3fbfaSHarlanC fn cause(&self) -> Option<&dyn Fail> { 70c2f3fbfaSHarlanC self.value.cause() 71c2f3fbfaSHarlanC } 72c2f3fbfaSHarlanC backtrace(&self) -> Option<&Backtrace>73c2f3fbfaSHarlanC fn backtrace(&self) -> Option<&Backtrace> { 74c2f3fbfaSHarlanC self.value.backtrace() 75c2f3fbfaSHarlanC } 76c2f3fbfaSHarlanC } 77