rosrust/rosxmlrpc/
mod.rs

1pub use self::client::Client;
2use self::response_info::ResponseInfo;
3pub use self::server::Server;
4
5pub mod client;
6pub mod error;
7mod response_info;
8pub mod server;
9
10pub type Response<T> = Result<T, ResponseError>;
11
12#[derive(Clone, Debug)]
13pub enum ResponseError {
14    Client(String),
15    Server(String),
16}
17
18impl std::fmt::Display for ResponseError {
19    fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> {
20        match *self {
21            ResponseError::Client(ref v) => write!(f, "Client error: {}", v),
22            ResponseError::Server(ref v) => write!(f, "Server error: {}", v),
23        }
24    }
25}
26
27impl std::error::Error for ResponseError {
28    fn description(&self) -> &str {
29        match *self {
30            ResponseError::Client(ref v) | ResponseError::Server(ref v) => v,
31        }
32    }
33
34    fn cause(&self) -> Option<&dyn std::error::Error> {
35        None
36    }
37}
38
39const ERROR_CODE: i32 = -1;
40const FAILURE_CODE: i32 = 0;
41const SUCCESS_CODE: i32 = 1;