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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
use crate::base::ErrorCode; use crate::messages::{Request, Response}; use snafu::{Backtrace, Snafu}; use std::string::FromUtf8Error; use {ommui_broadcast, serialport, std}; #[derive(Debug, Snafu)] #[snafu(visibility(pub(crate)))] pub enum Error { #[snafu(display("Response timeout"))] Timeout { backtrace: Backtrace }, #[snafu(display("channel sender disconnected"))] ChannelSenderDisconnected { backtrace: Backtrace }, #[snafu(display("broadcast error"))] #[snafu(backtrace(delegate))] Broadcast { source: ommui_broadcast::Error }, #[snafu(display("Couldn't create thread: {}", source))] ThreadCreation { source: std::io::Error, backtrace: Backtrace, }, #[snafu(display("serial port error"))] SerialPort { source: serialport::Error, backtrace: Backtrace, }, #[snafu(display("unexpected response type"))] UnexpectedResponseType { backtrace: Backtrace }, #[snafu(display("programmer error"))] ProgrammerError { backtrace: Backtrace }, #[snafu(display("xio error {:#x} ({:?})", error_code, error_code))] Xio { error_code: ErrorCode, backtrace: Backtrace, }, #[snafu(display("IO error: {}", source))] Io { source: std::io::Error, backtrace: Backtrace, }, #[snafu(display( "Expected sequence number {}, response had sequence number {}. \ Request: {:?}, response: {:?}", expected, received, request, response ))] XioSequenceError { expected: u8, received: u8, request: Request, response: Response, backtrace: Backtrace, }, #[snafu(display( "Invalid length for {} payload. Received: {}, required: {}", message_type, received, required ))] InvalidPayloadLength { message_type: &'static str, received: usize, required: usize, backtrace: Backtrace, }, #[snafu(display("Found unknown command id: {}", command_id))] UnknownCommandId { command_id: u16, backtrace: Backtrace, }, #[snafu(display( "Unmatched response to request. Request: {:?}, Response: {:?}", request, response ))] UnmatchedResponse { request: Request, response: Response, backtrace: Backtrace, }, #[snafu(display("Error converting to UTF-8: {}", source))] Utf8Conversion { source: FromUtf8Error }, #[snafu(display( "Invalid upload_job_parameters_request payload: \ Parameters {} value is not valid.", parameter_index ))] InvalidJobParametersPayload { parameter_index: u16, backtrace: Backtrace, }, }