1use serde::{Deserialize, Serialize};
2use thiserror::Error;
3
4use crate::{
5 controller::MaaControllerOption,
6 instance::{MaaInstOption, MaaTaskId},
7 resource::MaaResOption,
8 utility::MaaGlobalOption,
9};
10
11#[derive(Error, Debug, Serialize, Deserialize)]
12#[non_exhaustive]
13pub enum Error {
14 #[error("Maa fails to set global option {0}")]
15 MaaSetGlobalOptionError(MaaGlobalOption),
16
17 #[error("MaaToolkit failed to init")]
18 MaaToolkitInitError,
19
20 #[error("MaaStatus conversion error: {0}")]
21 MaaStatusConversionError(i32),
22
23 #[error("MaaAdbControllerType conversion error: {0}")]
24 MaaAdbControllerTypeConversionError(i32),
25
26 #[error("MaaWin32ControllerType conversion error: {0}")]
27 MaaWin32ControllerTypeConversionError(i32),
28
29 #[error("MaaDbgControllerType conversion error: {0}")]
30 MaaDbgControllerTypeConversionError(i32),
31
32 #[error("MaaController fails to set option {0}")]
33 MaaControllerSetOptionError(MaaControllerOption),
34
35 #[error("MaaResource fails to set option {0}")]
36 MaaResourceSetOptionError(MaaResOption),
37
38 #[error("MaaInstance fails to set option {0}")]
39 MaaInstanceSetOptionError(MaaInstOption),
40
41 #[error("MaaInstance fails to bind resource")]
42 MaaInstanceBindResourceError,
43
44 #[error("MaaInstance fails to bind controller")]
45 MaaInstanceBindControllerError,
46
47 #[error("MaaInstance fails to set task param {0}")]
48 MaaInstanceSetTaskParamError(MaaTaskId),
49
50 #[error("MaaInstance fails to stop")]
51 MaaInstanceStopError,
52
53 #[error("MaaInstance fails to register custom recognizer {0}")]
54 MaaInstanceRegisterCustomRecognizerError(String),
55
56 #[error("MaaInstance fails to unregister custom recognizer {0}")]
57 MaaInstanceUnregisterCustomRecognizerError(String),
58
59 #[error("MaaInstance fails to clear custom recognizer")]
60 MaaInstanceClearCustomRecognizerError,
61
62 #[error("MaaInstance fails to register custom action {0}")]
63 MaaInstanceRegisterCustomActionError(String),
64
65 #[error("MaaInstance fails to unregister custom action {0}")]
66 MaaInstanceUnregisterCustomActionError(String),
67
68 #[error("MaaInstance fails to clear custom action")]
69 MaaInstanceClearCustomActionError,
70
71 #[error("MaaSyncContext fails to run task: {0}")]
72 MaaSyncContextRunTaskError(String),
73
74 #[error("MaaSyncContext fails to run recognizer: {0}")]
75 MaaSyncContextRunRecognizerError(String),
76
77 #[error("MaaSyncContext fails to run action: {0}")]
78 MaaSyncContextRunActionError(String),
79
80 #[error("MaaSyncContext fails to click")]
81 MaaSyncContextClickError,
82
83 #[error("MaaSyncContext fails to swipe")]
84 MaaSyncContextSwipeError,
85
86 #[error("MaaSyncContext fails to press key {0}")]
87 MaaSyncContextPressKeyError(i32),
88
89 #[error("MaaSyncContext fails to input text {0}")]
90 MaaSyncContextInputTextError(String),
91
92 #[error("MaaSyncContext fails to touch down")]
93 MaaSyncContextTouchDownError,
94
95 #[error("MaaSyncContext fails to touch move")]
96 MaaSyncContextTouchMoveError,
97
98 #[error("MaaSyncContext fails to touch up")]
99 MaaSyncContextTouchUpError,
100
101 #[error("MaaSyncContext fails to screencap")]
102 MaaSyncContextScreencapError,
103
104 #[error("MaaSyncContext fails to get cached image")]
105 MaaSyncContextCachedImageError,
106
107 #[error("MaaResource fails to get hash")]
108 MaaResourceGetHashError,
109
110 #[error("MaaResource fails to get task list")]
111 MaaResourceGetTaskListError,
112
113 #[error("MaaResource fails to clear")]
114 MaaResourceClearError,
115
116 #[error("Maa fails to set string buffeer {0}")]
117 MaaSetStringError(String),
118
119 #[error("MaaToolkit fails to register custom recognizer executor")]
120 MaaToolkitRegisterCustomRecognizerExecutorError,
121
122 #[error("MaaToolkit fails to unregister custom recognizer executor")]
123 MaaToolkitUnregisterCustomRecognizerExecutorError,
124
125 #[error("MaaToolkit fails to find device")]
126 MaaToolkitPostFindDeviceError,
127
128 #[error("Buffer operation failed.")]
129 BufferError,
130
131 #[error("(De)serialize error: {0}")]
132 SerdeError(String),
133}
134
135impl From<serde_json::Error> for Error {
136 fn from(e: serde_json::Error) -> Self {
137 Error::SerdeError(e.to_string())
138 }
139}