1use conjure_object::serde::{ser, de};
2use conjure_object::serde::ser::SerializeMap as SerializeMap_;
3use conjure_object::private::{UnionField_, UnionTypeField_};
4use std::fmt;
5#[derive(Debug, Clone, conjure_object::private::DeriveWith)]
6#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
7pub enum ComputeNodeAppendResponse {
8 Range(Vec<super::super::super::super::scout::compute::api::Range>),
11 EnumPoint(Option<super::super::super::super::scout::compute::api::EnumPoint>),
13 NumericPoint(Option<super::super::super::super::scout::compute::api::NumericPoint>),
15 SinglePoint(Option<super::super::super::super::scout::compute::api::SinglePoint>),
17 LogPoint(Option<super::super::super::super::scout::compute::api::LogPoint>),
19 RangeValue(Option<super::super::super::super::scout::compute::api::Range>),
22 Numeric(super::super::super::super::scout::compute::api::NumericPlot),
24 Enum(super::super::super::super::scout::compute::api::EnumPlot),
26 Log(super::super::super::super::scout::compute::api::LogPlot),
28 BucketedNumeric(
32 super::super::super::super::scout::compute::api::BucketedNumericPlot,
33 ),
34 BucketedEnum(super::super::super::super::scout::compute::api::BucketedEnumPlot),
38 Multivariate(
42 super::super::super::super::scout::compute::api::BucketedMultivariatePlot,
43 ),
44 ArrowNumeric(super::super::super::super::scout::compute::api::ArrowPlot),
46 ArrowEnum(super::super::super::super::scout::compute::api::ArrowPlot),
48 ArrowBucketedNumeric(super::super::super::super::scout::compute::api::ArrowPlot),
52 ArrowBucketedEnum(super::super::super::super::scout::compute::api::ArrowPlot),
56 ArrowBucketedMultivariate(
60 super::super::super::super::scout::compute::api::ArrowPlot,
61 ),
62 ArrowBucketedStruct(super::super::super::super::scout::compute::api::ArrowPlot),
66 ArrowStruct(super::super::super::super::scout::compute::api::ArrowPlot),
68 ArrowLog(super::super::super::super::scout::compute::api::ArrowPlot),
70 Grouped(super::GroupedComputeNodeAppendResponses),
72 Unknown(Unknown),
74}
75impl ser::Serialize for ComputeNodeAppendResponse {
76 fn serialize<S>(&self, s: S) -> Result<S::Ok, S::Error>
77 where
78 S: ser::Serializer,
79 {
80 let mut map = s.serialize_map(Some(2))?;
81 match self {
82 ComputeNodeAppendResponse::Range(value) => {
83 map.serialize_entry(&"type", &"range")?;
84 map.serialize_entry(&"range", value)?;
85 }
86 ComputeNodeAppendResponse::EnumPoint(value) => {
87 map.serialize_entry(&"type", &"enumPoint")?;
88 map.serialize_entry(&"enumPoint", value)?;
89 }
90 ComputeNodeAppendResponse::NumericPoint(value) => {
91 map.serialize_entry(&"type", &"numericPoint")?;
92 map.serialize_entry(&"numericPoint", value)?;
93 }
94 ComputeNodeAppendResponse::SinglePoint(value) => {
95 map.serialize_entry(&"type", &"singlePoint")?;
96 map.serialize_entry(&"singlePoint", value)?;
97 }
98 ComputeNodeAppendResponse::LogPoint(value) => {
99 map.serialize_entry(&"type", &"logPoint")?;
100 map.serialize_entry(&"logPoint", value)?;
101 }
102 ComputeNodeAppendResponse::RangeValue(value) => {
103 map.serialize_entry(&"type", &"rangeValue")?;
104 map.serialize_entry(&"rangeValue", value)?;
105 }
106 ComputeNodeAppendResponse::Numeric(value) => {
107 map.serialize_entry(&"type", &"numeric")?;
108 map.serialize_entry(&"numeric", value)?;
109 }
110 ComputeNodeAppendResponse::Enum(value) => {
111 map.serialize_entry(&"type", &"enum")?;
112 map.serialize_entry(&"enum", value)?;
113 }
114 ComputeNodeAppendResponse::Log(value) => {
115 map.serialize_entry(&"type", &"log")?;
116 map.serialize_entry(&"log", value)?;
117 }
118 ComputeNodeAppendResponse::BucketedNumeric(value) => {
119 map.serialize_entry(&"type", &"bucketedNumeric")?;
120 map.serialize_entry(&"bucketedNumeric", value)?;
121 }
122 ComputeNodeAppendResponse::BucketedEnum(value) => {
123 map.serialize_entry(&"type", &"bucketedEnum")?;
124 map.serialize_entry(&"bucketedEnum", value)?;
125 }
126 ComputeNodeAppendResponse::Multivariate(value) => {
127 map.serialize_entry(&"type", &"multivariate")?;
128 map.serialize_entry(&"multivariate", value)?;
129 }
130 ComputeNodeAppendResponse::ArrowNumeric(value) => {
131 map.serialize_entry(&"type", &"arrowNumeric")?;
132 map.serialize_entry(&"arrowNumeric", value)?;
133 }
134 ComputeNodeAppendResponse::ArrowEnum(value) => {
135 map.serialize_entry(&"type", &"arrowEnum")?;
136 map.serialize_entry(&"arrowEnum", value)?;
137 }
138 ComputeNodeAppendResponse::ArrowBucketedNumeric(value) => {
139 map.serialize_entry(&"type", &"arrowBucketedNumeric")?;
140 map.serialize_entry(&"arrowBucketedNumeric", value)?;
141 }
142 ComputeNodeAppendResponse::ArrowBucketedEnum(value) => {
143 map.serialize_entry(&"type", &"arrowBucketedEnum")?;
144 map.serialize_entry(&"arrowBucketedEnum", value)?;
145 }
146 ComputeNodeAppendResponse::ArrowBucketedMultivariate(value) => {
147 map.serialize_entry(&"type", &"arrowBucketedMultivariate")?;
148 map.serialize_entry(&"arrowBucketedMultivariate", value)?;
149 }
150 ComputeNodeAppendResponse::ArrowBucketedStruct(value) => {
151 map.serialize_entry(&"type", &"arrowBucketedStruct")?;
152 map.serialize_entry(&"arrowBucketedStruct", value)?;
153 }
154 ComputeNodeAppendResponse::ArrowStruct(value) => {
155 map.serialize_entry(&"type", &"arrowStruct")?;
156 map.serialize_entry(&"arrowStruct", value)?;
157 }
158 ComputeNodeAppendResponse::ArrowLog(value) => {
159 map.serialize_entry(&"type", &"arrowLog")?;
160 map.serialize_entry(&"arrowLog", value)?;
161 }
162 ComputeNodeAppendResponse::Grouped(value) => {
163 map.serialize_entry(&"type", &"grouped")?;
164 map.serialize_entry(&"grouped", value)?;
165 }
166 ComputeNodeAppendResponse::Unknown(value) => {
167 map.serialize_entry(&"type", &value.type_)?;
168 map.serialize_entry(&value.type_, &value.value)?;
169 }
170 }
171 map.end()
172 }
173}
174impl<'de> de::Deserialize<'de> for ComputeNodeAppendResponse {
175 fn deserialize<D>(d: D) -> Result<ComputeNodeAppendResponse, D::Error>
176 where
177 D: de::Deserializer<'de>,
178 {
179 d.deserialize_map(Visitor_)
180 }
181}
182struct Visitor_;
183impl<'de> de::Visitor<'de> for Visitor_ {
184 type Value = ComputeNodeAppendResponse;
185 fn expecting(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
186 fmt.write_str("union ComputeNodeAppendResponse")
187 }
188 fn visit_map<A>(self, mut map: A) -> Result<ComputeNodeAppendResponse, A::Error>
189 where
190 A: de::MapAccess<'de>,
191 {
192 let v = match map.next_key::<UnionField_<Variant_>>()? {
193 Some(UnionField_::Type) => {
194 let variant = map.next_value()?;
195 let key = map.next_key()?;
196 match (variant, key) {
197 (Variant_::Range, Some(Variant_::Range)) => {
198 let value = map.next_value()?;
199 ComputeNodeAppendResponse::Range(value)
200 }
201 (Variant_::EnumPoint, Some(Variant_::EnumPoint)) => {
202 let value = map.next_value()?;
203 ComputeNodeAppendResponse::EnumPoint(value)
204 }
205 (Variant_::NumericPoint, Some(Variant_::NumericPoint)) => {
206 let value = map.next_value()?;
207 ComputeNodeAppendResponse::NumericPoint(value)
208 }
209 (Variant_::SinglePoint, Some(Variant_::SinglePoint)) => {
210 let value = map.next_value()?;
211 ComputeNodeAppendResponse::SinglePoint(value)
212 }
213 (Variant_::LogPoint, Some(Variant_::LogPoint)) => {
214 let value = map.next_value()?;
215 ComputeNodeAppendResponse::LogPoint(value)
216 }
217 (Variant_::RangeValue, Some(Variant_::RangeValue)) => {
218 let value = map.next_value()?;
219 ComputeNodeAppendResponse::RangeValue(value)
220 }
221 (Variant_::Numeric, Some(Variant_::Numeric)) => {
222 let value = map.next_value()?;
223 ComputeNodeAppendResponse::Numeric(value)
224 }
225 (Variant_::Enum, Some(Variant_::Enum)) => {
226 let value = map.next_value()?;
227 ComputeNodeAppendResponse::Enum(value)
228 }
229 (Variant_::Log, Some(Variant_::Log)) => {
230 let value = map.next_value()?;
231 ComputeNodeAppendResponse::Log(value)
232 }
233 (Variant_::BucketedNumeric, Some(Variant_::BucketedNumeric)) => {
234 let value = map.next_value()?;
235 ComputeNodeAppendResponse::BucketedNumeric(value)
236 }
237 (Variant_::BucketedEnum, Some(Variant_::BucketedEnum)) => {
238 let value = map.next_value()?;
239 ComputeNodeAppendResponse::BucketedEnum(value)
240 }
241 (Variant_::Multivariate, Some(Variant_::Multivariate)) => {
242 let value = map.next_value()?;
243 ComputeNodeAppendResponse::Multivariate(value)
244 }
245 (Variant_::ArrowNumeric, Some(Variant_::ArrowNumeric)) => {
246 let value = map.next_value()?;
247 ComputeNodeAppendResponse::ArrowNumeric(value)
248 }
249 (Variant_::ArrowEnum, Some(Variant_::ArrowEnum)) => {
250 let value = map.next_value()?;
251 ComputeNodeAppendResponse::ArrowEnum(value)
252 }
253 (
254 Variant_::ArrowBucketedNumeric,
255 Some(Variant_::ArrowBucketedNumeric),
256 ) => {
257 let value = map.next_value()?;
258 ComputeNodeAppendResponse::ArrowBucketedNumeric(value)
259 }
260 (Variant_::ArrowBucketedEnum, Some(Variant_::ArrowBucketedEnum)) => {
261 let value = map.next_value()?;
262 ComputeNodeAppendResponse::ArrowBucketedEnum(value)
263 }
264 (
265 Variant_::ArrowBucketedMultivariate,
266 Some(Variant_::ArrowBucketedMultivariate),
267 ) => {
268 let value = map.next_value()?;
269 ComputeNodeAppendResponse::ArrowBucketedMultivariate(value)
270 }
271 (
272 Variant_::ArrowBucketedStruct,
273 Some(Variant_::ArrowBucketedStruct),
274 ) => {
275 let value = map.next_value()?;
276 ComputeNodeAppendResponse::ArrowBucketedStruct(value)
277 }
278 (Variant_::ArrowStruct, Some(Variant_::ArrowStruct)) => {
279 let value = map.next_value()?;
280 ComputeNodeAppendResponse::ArrowStruct(value)
281 }
282 (Variant_::ArrowLog, Some(Variant_::ArrowLog)) => {
283 let value = map.next_value()?;
284 ComputeNodeAppendResponse::ArrowLog(value)
285 }
286 (Variant_::Grouped, Some(Variant_::Grouped)) => {
287 let value = map.next_value()?;
288 ComputeNodeAppendResponse::Grouped(value)
289 }
290 (Variant_::Unknown(type_), Some(Variant_::Unknown(b))) => {
291 if type_ == b {
292 let value = map.next_value()?;
293 ComputeNodeAppendResponse::Unknown(Unknown { type_, value })
294 } else {
295 return Err(
296 de::Error::invalid_value(de::Unexpected::Str(&type_), &&*b),
297 )
298 }
299 }
300 (variant, Some(key)) => {
301 return Err(
302 de::Error::invalid_value(
303 de::Unexpected::Str(key.as_str()),
304 &variant.as_str(),
305 ),
306 );
307 }
308 (variant, None) => {
309 return Err(de::Error::missing_field(variant.as_str()));
310 }
311 }
312 }
313 Some(UnionField_::Value(variant)) => {
314 let value = match &variant {
315 Variant_::Range => {
316 let value = map.next_value()?;
317 ComputeNodeAppendResponse::Range(value)
318 }
319 Variant_::EnumPoint => {
320 let value = map.next_value()?;
321 ComputeNodeAppendResponse::EnumPoint(value)
322 }
323 Variant_::NumericPoint => {
324 let value = map.next_value()?;
325 ComputeNodeAppendResponse::NumericPoint(value)
326 }
327 Variant_::SinglePoint => {
328 let value = map.next_value()?;
329 ComputeNodeAppendResponse::SinglePoint(value)
330 }
331 Variant_::LogPoint => {
332 let value = map.next_value()?;
333 ComputeNodeAppendResponse::LogPoint(value)
334 }
335 Variant_::RangeValue => {
336 let value = map.next_value()?;
337 ComputeNodeAppendResponse::RangeValue(value)
338 }
339 Variant_::Numeric => {
340 let value = map.next_value()?;
341 ComputeNodeAppendResponse::Numeric(value)
342 }
343 Variant_::Enum => {
344 let value = map.next_value()?;
345 ComputeNodeAppendResponse::Enum(value)
346 }
347 Variant_::Log => {
348 let value = map.next_value()?;
349 ComputeNodeAppendResponse::Log(value)
350 }
351 Variant_::BucketedNumeric => {
352 let value = map.next_value()?;
353 ComputeNodeAppendResponse::BucketedNumeric(value)
354 }
355 Variant_::BucketedEnum => {
356 let value = map.next_value()?;
357 ComputeNodeAppendResponse::BucketedEnum(value)
358 }
359 Variant_::Multivariate => {
360 let value = map.next_value()?;
361 ComputeNodeAppendResponse::Multivariate(value)
362 }
363 Variant_::ArrowNumeric => {
364 let value = map.next_value()?;
365 ComputeNodeAppendResponse::ArrowNumeric(value)
366 }
367 Variant_::ArrowEnum => {
368 let value = map.next_value()?;
369 ComputeNodeAppendResponse::ArrowEnum(value)
370 }
371 Variant_::ArrowBucketedNumeric => {
372 let value = map.next_value()?;
373 ComputeNodeAppendResponse::ArrowBucketedNumeric(value)
374 }
375 Variant_::ArrowBucketedEnum => {
376 let value = map.next_value()?;
377 ComputeNodeAppendResponse::ArrowBucketedEnum(value)
378 }
379 Variant_::ArrowBucketedMultivariate => {
380 let value = map.next_value()?;
381 ComputeNodeAppendResponse::ArrowBucketedMultivariate(value)
382 }
383 Variant_::ArrowBucketedStruct => {
384 let value = map.next_value()?;
385 ComputeNodeAppendResponse::ArrowBucketedStruct(value)
386 }
387 Variant_::ArrowStruct => {
388 let value = map.next_value()?;
389 ComputeNodeAppendResponse::ArrowStruct(value)
390 }
391 Variant_::ArrowLog => {
392 let value = map.next_value()?;
393 ComputeNodeAppendResponse::ArrowLog(value)
394 }
395 Variant_::Grouped => {
396 let value = map.next_value()?;
397 ComputeNodeAppendResponse::Grouped(value)
398 }
399 Variant_::Unknown(type_) => {
400 let value = map.next_value()?;
401 ComputeNodeAppendResponse::Unknown(Unknown {
402 type_: type_.clone(),
403 value,
404 })
405 }
406 };
407 if map.next_key::<UnionTypeField_>()?.is_none() {
408 return Err(de::Error::missing_field("type"));
409 }
410 let type_variant = map.next_value::<Variant_>()?;
411 if variant != type_variant {
412 return Err(
413 de::Error::invalid_value(
414 de::Unexpected::Str(type_variant.as_str()),
415 &variant.as_str(),
416 ),
417 );
418 }
419 value
420 }
421 None => return Err(de::Error::missing_field("type")),
422 };
423 if map.next_key::<UnionField_<Variant_>>()?.is_some() {
424 return Err(de::Error::invalid_length(3, &"type and value fields"));
425 }
426 Ok(v)
427 }
428}
429#[derive(PartialEq)]
430enum Variant_ {
431 Range,
432 EnumPoint,
433 NumericPoint,
434 SinglePoint,
435 LogPoint,
436 RangeValue,
437 Numeric,
438 Enum,
439 Log,
440 BucketedNumeric,
441 BucketedEnum,
442 Multivariate,
443 ArrowNumeric,
444 ArrowEnum,
445 ArrowBucketedNumeric,
446 ArrowBucketedEnum,
447 ArrowBucketedMultivariate,
448 ArrowBucketedStruct,
449 ArrowStruct,
450 ArrowLog,
451 Grouped,
452 Unknown(Box<str>),
453}
454impl Variant_ {
455 fn as_str(&self) -> &'static str {
456 match *self {
457 Variant_::Range => "range",
458 Variant_::EnumPoint => "enumPoint",
459 Variant_::NumericPoint => "numericPoint",
460 Variant_::SinglePoint => "singlePoint",
461 Variant_::LogPoint => "logPoint",
462 Variant_::RangeValue => "rangeValue",
463 Variant_::Numeric => "numeric",
464 Variant_::Enum => "enum",
465 Variant_::Log => "log",
466 Variant_::BucketedNumeric => "bucketedNumeric",
467 Variant_::BucketedEnum => "bucketedEnum",
468 Variant_::Multivariate => "multivariate",
469 Variant_::ArrowNumeric => "arrowNumeric",
470 Variant_::ArrowEnum => "arrowEnum",
471 Variant_::ArrowBucketedNumeric => "arrowBucketedNumeric",
472 Variant_::ArrowBucketedEnum => "arrowBucketedEnum",
473 Variant_::ArrowBucketedMultivariate => "arrowBucketedMultivariate",
474 Variant_::ArrowBucketedStruct => "arrowBucketedStruct",
475 Variant_::ArrowStruct => "arrowStruct",
476 Variant_::ArrowLog => "arrowLog",
477 Variant_::Grouped => "grouped",
478 Variant_::Unknown(_) => "unknown variant",
479 }
480 }
481}
482impl<'de> de::Deserialize<'de> for Variant_ {
483 fn deserialize<D>(d: D) -> Result<Variant_, D::Error>
484 where
485 D: de::Deserializer<'de>,
486 {
487 d.deserialize_str(VariantVisitor_)
488 }
489}
490struct VariantVisitor_;
491impl<'de> de::Visitor<'de> for VariantVisitor_ {
492 type Value = Variant_;
493 fn expecting(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
494 fmt.write_str("string")
495 }
496 fn visit_str<E>(self, value: &str) -> Result<Variant_, E>
497 where
498 E: de::Error,
499 {
500 let v = match value {
501 "range" => Variant_::Range,
502 "enumPoint" => Variant_::EnumPoint,
503 "numericPoint" => Variant_::NumericPoint,
504 "singlePoint" => Variant_::SinglePoint,
505 "logPoint" => Variant_::LogPoint,
506 "rangeValue" => Variant_::RangeValue,
507 "numeric" => Variant_::Numeric,
508 "enum" => Variant_::Enum,
509 "log" => Variant_::Log,
510 "bucketedNumeric" => Variant_::BucketedNumeric,
511 "bucketedEnum" => Variant_::BucketedEnum,
512 "multivariate" => Variant_::Multivariate,
513 "arrowNumeric" => Variant_::ArrowNumeric,
514 "arrowEnum" => Variant_::ArrowEnum,
515 "arrowBucketedNumeric" => Variant_::ArrowBucketedNumeric,
516 "arrowBucketedEnum" => Variant_::ArrowBucketedEnum,
517 "arrowBucketedMultivariate" => Variant_::ArrowBucketedMultivariate,
518 "arrowBucketedStruct" => Variant_::ArrowBucketedStruct,
519 "arrowStruct" => Variant_::ArrowStruct,
520 "arrowLog" => Variant_::ArrowLog,
521 "grouped" => Variant_::Grouped,
522 value => Variant_::Unknown(value.to_string().into_boxed_str()),
523 };
524 Ok(v)
525 }
526}
527#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
529pub struct Unknown {
530 type_: Box<str>,
531 value: conjure_object::Any,
532}
533impl Unknown {
534 #[inline]
536 pub fn type_(&self) -> &str {
537 &self.type_
538 }
539}