1use melodium_common::descriptor::DataTrait as CommonDataTrait;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
5#[cfg_attr(feature = "webassembly", derive(tsify::Tsify))]
6#[cfg_attr(feature = "webassembly", tsify(into_wasm_abi, from_wasm_abi))]
7pub enum DataTrait {
8 Option,
9 Vec,
10
11 ToI8,
13 ToI16,
14 ToI32,
15 ToI64,
16 ToI128,
17 ToU8,
18 ToU16,
19 ToU32,
20 ToU64,
21 ToU128,
22 ToF32,
23 ToF64,
24 ToBool,
25 ToByte,
26 ToChar,
27 ToString,
28
29 TryToI8,
31 TryToI16,
32 TryToI32,
33 TryToI64,
34 TryToI128,
35 TryToU8,
36 TryToU16,
37 TryToU32,
38 TryToU64,
39 TryToU128,
40 TryToF32,
41 TryToF64,
42 TryToBool,
43 TryToByte,
44 TryToChar,
45 TryToString,
46
47 SaturatingToI8,
48 SaturatingToI16,
49 SaturatingToI32,
50 SaturatingToI64,
51 SaturatingToI128,
52 SaturatingToU8,
53 SaturatingToU16,
54 SaturatingToU32,
55 SaturatingToU64,
56 SaturatingToU128,
57 SaturatingToF32,
58 SaturatingToF64,
59
60 Bounded,
61
62 Binary,
63
64 Signed,
65 Float,
66
67 PartialEquality,
68 Equality,
69 PartialOrder,
70 Order,
71
72 Add,
73 CheckedAdd,
74 SaturatingAdd,
75 WrappingAdd,
76 Sub,
77 CheckedSub,
78 SaturatingSub,
79 WrappingSub,
80 Mul,
81 CheckedMul,
82 SaturatingMul,
83 WrappingMul,
84 Div,
85 CheckedDiv,
86 Rem,
87 CheckedRem,
88 Neg,
89 CheckedNeg,
90 WrappingNeg,
91 Pow,
92 CheckedPow,
93
94 Euclid,
95 CheckedEuclid,
96
97 Hash,
98
99 Serialize,
100 Deserialize,
101
102 Display,
103}
104
105impl From<&CommonDataTrait> for DataTrait {
106 fn from(value: &CommonDataTrait) -> Self {
107 match value {
108 CommonDataTrait::Option => DataTrait::Option,
109 CommonDataTrait::Vec => DataTrait::Vec,
110
111 CommonDataTrait::ToI8 => DataTrait::ToI8,
112 CommonDataTrait::ToI16 => DataTrait::ToI16,
113 CommonDataTrait::ToI32 => DataTrait::ToI32,
114 CommonDataTrait::ToI64 => DataTrait::ToI64,
115 CommonDataTrait::ToI128 => DataTrait::ToI128,
116 CommonDataTrait::ToU8 => DataTrait::ToU8,
117 CommonDataTrait::ToU16 => DataTrait::ToU16,
118 CommonDataTrait::ToU32 => DataTrait::ToU32,
119 CommonDataTrait::ToU64 => DataTrait::ToU64,
120 CommonDataTrait::ToU128 => DataTrait::ToU128,
121 CommonDataTrait::ToF32 => DataTrait::ToF32,
122 CommonDataTrait::ToF64 => DataTrait::ToF64,
123 CommonDataTrait::ToBool => DataTrait::ToBool,
124 CommonDataTrait::ToByte => DataTrait::ToByte,
125 CommonDataTrait::ToChar => DataTrait::ToChar,
126 CommonDataTrait::ToString => DataTrait::ToString,
127
128 CommonDataTrait::TryToI8 => DataTrait::TryToI8,
129 CommonDataTrait::TryToI16 => DataTrait::TryToI16,
130 CommonDataTrait::TryToI32 => DataTrait::TryToI32,
131 CommonDataTrait::TryToI64 => DataTrait::TryToI64,
132 CommonDataTrait::TryToI128 => DataTrait::TryToI128,
133 CommonDataTrait::TryToU8 => DataTrait::TryToU8,
134 CommonDataTrait::TryToU16 => DataTrait::TryToU16,
135 CommonDataTrait::TryToU32 => DataTrait::TryToU32,
136 CommonDataTrait::TryToU64 => DataTrait::TryToU64,
137 CommonDataTrait::TryToU128 => DataTrait::TryToU128,
138 CommonDataTrait::TryToF32 => DataTrait::TryToF32,
139 CommonDataTrait::TryToF64 => DataTrait::TryToF64,
140 CommonDataTrait::TryToBool => DataTrait::TryToBool,
141 CommonDataTrait::TryToByte => DataTrait::TryToByte,
142 CommonDataTrait::TryToChar => DataTrait::TryToChar,
143 CommonDataTrait::TryToString => DataTrait::TryToString,
144
145 CommonDataTrait::SaturatingToI8 => DataTrait::SaturatingToI8,
146 CommonDataTrait::SaturatingToI16 => DataTrait::SaturatingToI16,
147 CommonDataTrait::SaturatingToI32 => DataTrait::SaturatingToI32,
148 CommonDataTrait::SaturatingToI64 => DataTrait::SaturatingToI64,
149 CommonDataTrait::SaturatingToI128 => DataTrait::SaturatingToI128,
150 CommonDataTrait::SaturatingToU8 => DataTrait::SaturatingToU8,
151 CommonDataTrait::SaturatingToU16 => DataTrait::SaturatingToU16,
152 CommonDataTrait::SaturatingToU32 => DataTrait::SaturatingToU32,
153 CommonDataTrait::SaturatingToU64 => DataTrait::SaturatingToU64,
154 CommonDataTrait::SaturatingToU128 => DataTrait::SaturatingToU128,
155 CommonDataTrait::SaturatingToF32 => DataTrait::SaturatingToF32,
156 CommonDataTrait::SaturatingToF64 => DataTrait::SaturatingToF64,
157
158 CommonDataTrait::Bounded => DataTrait::Bounded,
159
160 CommonDataTrait::Binary => DataTrait::Binary,
161
162 CommonDataTrait::Signed => DataTrait::Signed,
163 CommonDataTrait::Float => DataTrait::Float,
164
165 CommonDataTrait::PartialEquality => DataTrait::PartialEquality,
166 CommonDataTrait::Equality => DataTrait::Equality,
167 CommonDataTrait::PartialOrder => DataTrait::PartialOrder,
168 CommonDataTrait::Order => DataTrait::Order,
169
170 CommonDataTrait::Add => DataTrait::Add,
171 CommonDataTrait::CheckedAdd => DataTrait::CheckedAdd,
172 CommonDataTrait::SaturatingAdd => DataTrait::SaturatingAdd,
173 CommonDataTrait::WrappingAdd => DataTrait::WrappingAdd,
174 CommonDataTrait::Sub => DataTrait::Sub,
175 CommonDataTrait::CheckedSub => DataTrait::CheckedSub,
176 CommonDataTrait::SaturatingSub => DataTrait::SaturatingSub,
177 CommonDataTrait::WrappingSub => DataTrait::WrappingSub,
178 CommonDataTrait::Mul => DataTrait::Mul,
179 CommonDataTrait::CheckedMul => DataTrait::CheckedMul,
180 CommonDataTrait::SaturatingMul => DataTrait::SaturatingMul,
181 CommonDataTrait::WrappingMul => DataTrait::WrappingMul,
182 CommonDataTrait::Div => DataTrait::Div,
183 CommonDataTrait::CheckedDiv => DataTrait::CheckedDiv,
184 CommonDataTrait::Rem => DataTrait::Rem,
185 CommonDataTrait::CheckedRem => DataTrait::CheckedRem,
186 CommonDataTrait::Neg => DataTrait::Neg,
187 CommonDataTrait::CheckedNeg => DataTrait::CheckedNeg,
188 CommonDataTrait::WrappingNeg => DataTrait::WrappingNeg,
189 CommonDataTrait::Pow => DataTrait::Pow,
190 CommonDataTrait::CheckedPow => DataTrait::CheckedPow,
191
192 CommonDataTrait::Euclid => DataTrait::Euclid,
193 CommonDataTrait::CheckedEuclid => DataTrait::CheckedEuclid,
194
195 CommonDataTrait::Hash => DataTrait::Hash,
196
197 CommonDataTrait::Serialize => DataTrait::Serialize,
198 CommonDataTrait::Deserialize => DataTrait::Deserialize,
199
200 CommonDataTrait::Display => DataTrait::Display,
201 }
202 }
203}
204
205impl Into<CommonDataTrait> for &DataTrait {
206 fn into(self) -> CommonDataTrait {
207 match self {
208 DataTrait::Option => CommonDataTrait::Option,
209 DataTrait::Vec => CommonDataTrait::Vec,
210
211 DataTrait::ToI8 => CommonDataTrait::ToI8,
212 DataTrait::ToI16 => CommonDataTrait::ToI16,
213 DataTrait::ToI32 => CommonDataTrait::ToI32,
214 DataTrait::ToI64 => CommonDataTrait::ToI64,
215 DataTrait::ToI128 => CommonDataTrait::ToI128,
216 DataTrait::ToU8 => CommonDataTrait::ToU8,
217 DataTrait::ToU16 => CommonDataTrait::ToU16,
218 DataTrait::ToU32 => CommonDataTrait::ToU32,
219 DataTrait::ToU64 => CommonDataTrait::ToU64,
220 DataTrait::ToU128 => CommonDataTrait::ToU128,
221 DataTrait::ToF32 => CommonDataTrait::ToF32,
222 DataTrait::ToF64 => CommonDataTrait::ToF64,
223 DataTrait::ToBool => CommonDataTrait::ToBool,
224 DataTrait::ToByte => CommonDataTrait::ToByte,
225 DataTrait::ToChar => CommonDataTrait::ToChar,
226 DataTrait::ToString => CommonDataTrait::ToString,
227
228 DataTrait::TryToI8 => CommonDataTrait::TryToI8,
229 DataTrait::TryToI16 => CommonDataTrait::TryToI16,
230 DataTrait::TryToI32 => CommonDataTrait::TryToI32,
231 DataTrait::TryToI64 => CommonDataTrait::TryToI64,
232 DataTrait::TryToI128 => CommonDataTrait::TryToI128,
233 DataTrait::TryToU8 => CommonDataTrait::TryToU8,
234 DataTrait::TryToU16 => CommonDataTrait::TryToU16,
235 DataTrait::TryToU32 => CommonDataTrait::TryToU32,
236 DataTrait::TryToU64 => CommonDataTrait::TryToU64,
237 DataTrait::TryToU128 => CommonDataTrait::TryToU128,
238 DataTrait::TryToF32 => CommonDataTrait::TryToF32,
239 DataTrait::TryToF64 => CommonDataTrait::TryToF64,
240 DataTrait::TryToBool => CommonDataTrait::TryToBool,
241 DataTrait::TryToByte => CommonDataTrait::TryToByte,
242 DataTrait::TryToChar => CommonDataTrait::TryToChar,
243 DataTrait::TryToString => CommonDataTrait::TryToString,
244
245 DataTrait::SaturatingToI8 => CommonDataTrait::SaturatingToI8,
246 DataTrait::SaturatingToI16 => CommonDataTrait::SaturatingToI16,
247 DataTrait::SaturatingToI32 => CommonDataTrait::SaturatingToI32,
248 DataTrait::SaturatingToI64 => CommonDataTrait::SaturatingToI64,
249 DataTrait::SaturatingToI128 => CommonDataTrait::SaturatingToI128,
250 DataTrait::SaturatingToU8 => CommonDataTrait::SaturatingToU8,
251 DataTrait::SaturatingToU16 => CommonDataTrait::SaturatingToU16,
252 DataTrait::SaturatingToU32 => CommonDataTrait::SaturatingToU32,
253 DataTrait::SaturatingToU64 => CommonDataTrait::SaturatingToU64,
254 DataTrait::SaturatingToU128 => CommonDataTrait::SaturatingToU128,
255 DataTrait::SaturatingToF32 => CommonDataTrait::SaturatingToF32,
256 DataTrait::SaturatingToF64 => CommonDataTrait::SaturatingToF64,
257
258 DataTrait::Bounded => CommonDataTrait::Bounded,
259
260 DataTrait::Binary => CommonDataTrait::Binary,
261
262 DataTrait::Signed => CommonDataTrait::Signed,
263 DataTrait::Float => CommonDataTrait::Float,
264
265 DataTrait::PartialEquality => CommonDataTrait::PartialEquality,
266 DataTrait::Equality => CommonDataTrait::Equality,
267 DataTrait::PartialOrder => CommonDataTrait::PartialOrder,
268 DataTrait::Order => CommonDataTrait::Order,
269
270 DataTrait::Add => CommonDataTrait::Add,
271 DataTrait::CheckedAdd => CommonDataTrait::CheckedAdd,
272 DataTrait::SaturatingAdd => CommonDataTrait::SaturatingAdd,
273 DataTrait::WrappingAdd => CommonDataTrait::WrappingAdd,
274 DataTrait::Sub => CommonDataTrait::Sub,
275 DataTrait::CheckedSub => CommonDataTrait::CheckedSub,
276 DataTrait::SaturatingSub => CommonDataTrait::SaturatingSub,
277 DataTrait::WrappingSub => CommonDataTrait::WrappingSub,
278 DataTrait::Mul => CommonDataTrait::Mul,
279 DataTrait::CheckedMul => CommonDataTrait::CheckedMul,
280 DataTrait::SaturatingMul => CommonDataTrait::SaturatingMul,
281 DataTrait::WrappingMul => CommonDataTrait::WrappingMul,
282 DataTrait::Div => CommonDataTrait::Div,
283 DataTrait::CheckedDiv => CommonDataTrait::CheckedDiv,
284 DataTrait::Rem => CommonDataTrait::Rem,
285 DataTrait::CheckedRem => CommonDataTrait::CheckedRem,
286 DataTrait::Neg => CommonDataTrait::Neg,
287 DataTrait::CheckedNeg => CommonDataTrait::CheckedNeg,
288 DataTrait::WrappingNeg => CommonDataTrait::WrappingNeg,
289 DataTrait::Pow => CommonDataTrait::Pow,
290 DataTrait::CheckedPow => CommonDataTrait::CheckedPow,
291
292 DataTrait::Euclid => CommonDataTrait::Euclid,
293 DataTrait::CheckedEuclid => CommonDataTrait::CheckedEuclid,
294
295 DataTrait::Hash => CommonDataTrait::Hash,
296
297 DataTrait::Serialize => CommonDataTrait::Serialize,
298 DataTrait::Deserialize => CommonDataTrait::Deserialize,
299
300 DataTrait::Display => CommonDataTrait::Display,
301 }
302 }
303}
304
305impl Into<CommonDataTrait> for DataTrait {
306 fn into(self) -> CommonDataTrait {
307 (&self).into()
308 }
309}