1mod api;
25mod client;
26mod error;
27mod frame;
28mod port_client;
29mod protocol;
30
31pub use api::*;
32pub use client::RbkClient;
33pub use error::{RbkError, RbkResult};
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38
39 #[test]
40 fn test_request_types_exist() {
41 let _ = CommonInfoRequest::new();
43 let _ = BatteryStatusRequest::new();
44 let _ = StopExerciseRequest::new();
45 let _ = MoveToTargetRequest::new(MoveToTarget::new("target1"));
46 let _ = MoveToTarget::new("target1").into_request();
47 let _ = SwitchMapRequest::new();
48 let _ = LoadJackRequest::new();
49 }
50
51 #[test]
52 fn test_request_body_serialization() {
53 use crate::api::ToRequestBody;
54
55 let request = CommonInfoRequest::new();
57 assert_eq!(request.to_request_body().unwrap(), "");
58
59 let api = request.to_api_request();
61 assert_eq!(api.api_no(), 1000);
62 }
63
64 #[test]
65 fn test_response_type_associations() {
66 use crate::api::FromResponseBody;
67
68 type Response = <CommonInfoRequest as FromResponseBody>::Response;
70
71 let _: Response = CommonInfo {
73 id: "robot1".to_string(),
74 version: "1.0".to_string(),
75 model: "RBK-1".to_string(),
76 code: None,
77 message: "".to_string(),
78 };
79 }
80}