1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
5pub struct ImportFileInfo {
6 pub name: Box<str>,
8 pub size: u64,
10}
11
12#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
14#[serde(rename_all = "camelCase")]
15pub struct DeviceDescriptor {
16 pub device_id: uuid::Uuid,
18 pub type_names: Box<[Box<str>]>,
20}
21
22#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct MethodDescriptor {
26 pub name: Box<str>,
28 pub return_type: Box<str>,
30 pub description: Box<str>,
32 pub parameters: Box<[ParameterDescriptor]>,
34}
35
36#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
38pub struct ParameterDescriptor {
39 pub name: Box<str>,
41 pub description: Box<str>,
43 #[serde(rename = "type")]
44 pub ty: Box<str>,
46}
47
48#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
50#[serde(rename_all = "lowercase")]
51pub enum Direction {
52 Up,
53 Down,
54 Front,
55 Back,
56 Left,
57 Right,
58}
59
60#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
62#[serde(rename_all = "lowercase")]
63pub enum RotationDirection {
64 Left,
65 Right,
66}
67
68#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
70pub enum RobotActionResult {
71 Incomplete,
72 Success,
73 Failure,
74}