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 ComputeNodeResponse {
8 Range(Vec<super::Range>),
9 RangesSummary(super::RangesSummary),
10 RangeValue(Option<super::Range>),
11 Numeric(super::NumericPlot),
12 BucketedNumeric(super::BucketedNumericPlot),
13 NumericPoint(Option<super::NumericPoint>),
14 SinglePoint(Option<super::SinglePoint>),
15 ArrowNumeric(super::ArrowPlot),
16 ArrowBucketedNumeric(super::ArrowPlot),
17 Enum(super::EnumPlot),
18 EnumPoint(Option<super::EnumPoint>),
19 BucketedEnum(super::BucketedEnumPlot),
20 ArrowEnum(super::ArrowPlot),
21 ArrowBucketedEnum(super::ArrowPlot),
22 PagedLog(super::PagedLogPlot),
23 LogPoint(Option<super::LogPoint>),
24 Cartesian(super::CartesianPlot),
25 BucketedCartesian(super::BucketedCartesianPlot),
26 BucketedCartesian3d(super::BucketedCartesian3dPlot),
27 FrequencyDomain(super::FrequencyDomainPlot),
28 FrequencyDomainV2(Box<super::FrequencyDomainPlotV2>),
29 BucketedFrequencyDomain(super::BucketedFrequencyDomainPlot),
30 NumericHistogram(super::NumericHistogramPlot),
31 EnumHistogram(super::EnumHistogramPlot),
32 CurveFit(super::CurveFitResult),
33 Grouped(super::GroupedComputeNodeResponses),
34 Array(Box<super::ArrowArrayPlot>),
35 BucketedStruct(super::ArrowPlot),
36 ArrowStruct(super::ArrowPlot),
37 FullResolution(super::ArrowPlot),
38 ArrowBucketedMultivariate(super::ArrowPlot),
39 Multivariate(super::BucketedMultivariatePlot),
40 Unknown(Unknown),
42}
43impl ser::Serialize for ComputeNodeResponse {
44 fn serialize<S>(&self, s: S) -> Result<S::Ok, S::Error>
45 where
46 S: ser::Serializer,
47 {
48 let mut map = s.serialize_map(Some(2))?;
49 match self {
50 ComputeNodeResponse::Range(value) => {
51 map.serialize_entry(&"type", &"range")?;
52 map.serialize_entry(&"range", value)?;
53 }
54 ComputeNodeResponse::RangesSummary(value) => {
55 map.serialize_entry(&"type", &"rangesSummary")?;
56 map.serialize_entry(&"rangesSummary", value)?;
57 }
58 ComputeNodeResponse::RangeValue(value) => {
59 map.serialize_entry(&"type", &"rangeValue")?;
60 map.serialize_entry(&"rangeValue", value)?;
61 }
62 ComputeNodeResponse::Numeric(value) => {
63 map.serialize_entry(&"type", &"numeric")?;
64 map.serialize_entry(&"numeric", value)?;
65 }
66 ComputeNodeResponse::BucketedNumeric(value) => {
67 map.serialize_entry(&"type", &"bucketedNumeric")?;
68 map.serialize_entry(&"bucketedNumeric", value)?;
69 }
70 ComputeNodeResponse::NumericPoint(value) => {
71 map.serialize_entry(&"type", &"numericPoint")?;
72 map.serialize_entry(&"numericPoint", value)?;
73 }
74 ComputeNodeResponse::SinglePoint(value) => {
75 map.serialize_entry(&"type", &"singlePoint")?;
76 map.serialize_entry(&"singlePoint", value)?;
77 }
78 ComputeNodeResponse::ArrowNumeric(value) => {
79 map.serialize_entry(&"type", &"arrowNumeric")?;
80 map.serialize_entry(&"arrowNumeric", value)?;
81 }
82 ComputeNodeResponse::ArrowBucketedNumeric(value) => {
83 map.serialize_entry(&"type", &"arrowBucketedNumeric")?;
84 map.serialize_entry(&"arrowBucketedNumeric", value)?;
85 }
86 ComputeNodeResponse::Enum(value) => {
87 map.serialize_entry(&"type", &"enum")?;
88 map.serialize_entry(&"enum", value)?;
89 }
90 ComputeNodeResponse::EnumPoint(value) => {
91 map.serialize_entry(&"type", &"enumPoint")?;
92 map.serialize_entry(&"enumPoint", value)?;
93 }
94 ComputeNodeResponse::BucketedEnum(value) => {
95 map.serialize_entry(&"type", &"bucketedEnum")?;
96 map.serialize_entry(&"bucketedEnum", value)?;
97 }
98 ComputeNodeResponse::ArrowEnum(value) => {
99 map.serialize_entry(&"type", &"arrowEnum")?;
100 map.serialize_entry(&"arrowEnum", value)?;
101 }
102 ComputeNodeResponse::ArrowBucketedEnum(value) => {
103 map.serialize_entry(&"type", &"arrowBucketedEnum")?;
104 map.serialize_entry(&"arrowBucketedEnum", value)?;
105 }
106 ComputeNodeResponse::PagedLog(value) => {
107 map.serialize_entry(&"type", &"pagedLog")?;
108 map.serialize_entry(&"pagedLog", value)?;
109 }
110 ComputeNodeResponse::LogPoint(value) => {
111 map.serialize_entry(&"type", &"logPoint")?;
112 map.serialize_entry(&"logPoint", value)?;
113 }
114 ComputeNodeResponse::Cartesian(value) => {
115 map.serialize_entry(&"type", &"cartesian")?;
116 map.serialize_entry(&"cartesian", value)?;
117 }
118 ComputeNodeResponse::BucketedCartesian(value) => {
119 map.serialize_entry(&"type", &"bucketedCartesian")?;
120 map.serialize_entry(&"bucketedCartesian", value)?;
121 }
122 ComputeNodeResponse::BucketedCartesian3d(value) => {
123 map.serialize_entry(&"type", &"bucketedCartesian3d")?;
124 map.serialize_entry(&"bucketedCartesian3d", value)?;
125 }
126 ComputeNodeResponse::FrequencyDomain(value) => {
127 map.serialize_entry(&"type", &"frequencyDomain")?;
128 map.serialize_entry(&"frequencyDomain", value)?;
129 }
130 ComputeNodeResponse::FrequencyDomainV2(value) => {
131 map.serialize_entry(&"type", &"frequencyDomainV2")?;
132 map.serialize_entry(&"frequencyDomainV2", value)?;
133 }
134 ComputeNodeResponse::BucketedFrequencyDomain(value) => {
135 map.serialize_entry(&"type", &"bucketedFrequencyDomain")?;
136 map.serialize_entry(&"bucketedFrequencyDomain", value)?;
137 }
138 ComputeNodeResponse::NumericHistogram(value) => {
139 map.serialize_entry(&"type", &"numericHistogram")?;
140 map.serialize_entry(&"numericHistogram", value)?;
141 }
142 ComputeNodeResponse::EnumHistogram(value) => {
143 map.serialize_entry(&"type", &"enumHistogram")?;
144 map.serialize_entry(&"enumHistogram", value)?;
145 }
146 ComputeNodeResponse::CurveFit(value) => {
147 map.serialize_entry(&"type", &"curveFit")?;
148 map.serialize_entry(&"curveFit", value)?;
149 }
150 ComputeNodeResponse::Grouped(value) => {
151 map.serialize_entry(&"type", &"grouped")?;
152 map.serialize_entry(&"grouped", value)?;
153 }
154 ComputeNodeResponse::Array(value) => {
155 map.serialize_entry(&"type", &"array")?;
156 map.serialize_entry(&"array", value)?;
157 }
158 ComputeNodeResponse::BucketedStruct(value) => {
159 map.serialize_entry(&"type", &"bucketedStruct")?;
160 map.serialize_entry(&"bucketedStruct", value)?;
161 }
162 ComputeNodeResponse::ArrowStruct(value) => {
163 map.serialize_entry(&"type", &"arrowStruct")?;
164 map.serialize_entry(&"arrowStruct", value)?;
165 }
166 ComputeNodeResponse::FullResolution(value) => {
167 map.serialize_entry(&"type", &"fullResolution")?;
168 map.serialize_entry(&"fullResolution", value)?;
169 }
170 ComputeNodeResponse::ArrowBucketedMultivariate(value) => {
171 map.serialize_entry(&"type", &"arrowBucketedMultivariate")?;
172 map.serialize_entry(&"arrowBucketedMultivariate", value)?;
173 }
174 ComputeNodeResponse::Multivariate(value) => {
175 map.serialize_entry(&"type", &"multivariate")?;
176 map.serialize_entry(&"multivariate", value)?;
177 }
178 ComputeNodeResponse::Unknown(value) => {
179 map.serialize_entry(&"type", &value.type_)?;
180 map.serialize_entry(&value.type_, &value.value)?;
181 }
182 }
183 map.end()
184 }
185}
186impl<'de> de::Deserialize<'de> for ComputeNodeResponse {
187 fn deserialize<D>(d: D) -> Result<ComputeNodeResponse, D::Error>
188 where
189 D: de::Deserializer<'de>,
190 {
191 d.deserialize_map(Visitor_)
192 }
193}
194struct Visitor_;
195impl<'de> de::Visitor<'de> for Visitor_ {
196 type Value = ComputeNodeResponse;
197 fn expecting(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
198 fmt.write_str("union ComputeNodeResponse")
199 }
200 fn visit_map<A>(self, mut map: A) -> Result<ComputeNodeResponse, A::Error>
201 where
202 A: de::MapAccess<'de>,
203 {
204 let v = match map.next_key::<UnionField_<Variant_>>()? {
205 Some(UnionField_::Type) => {
206 let variant = map.next_value()?;
207 let key = map.next_key()?;
208 match (variant, key) {
209 (Variant_::Range, Some(Variant_::Range)) => {
210 let value = map.next_value()?;
211 ComputeNodeResponse::Range(value)
212 }
213 (Variant_::RangesSummary, Some(Variant_::RangesSummary)) => {
214 let value = map.next_value()?;
215 ComputeNodeResponse::RangesSummary(value)
216 }
217 (Variant_::RangeValue, Some(Variant_::RangeValue)) => {
218 let value = map.next_value()?;
219 ComputeNodeResponse::RangeValue(value)
220 }
221 (Variant_::Numeric, Some(Variant_::Numeric)) => {
222 let value = map.next_value()?;
223 ComputeNodeResponse::Numeric(value)
224 }
225 (Variant_::BucketedNumeric, Some(Variant_::BucketedNumeric)) => {
226 let value = map.next_value()?;
227 ComputeNodeResponse::BucketedNumeric(value)
228 }
229 (Variant_::NumericPoint, Some(Variant_::NumericPoint)) => {
230 let value = map.next_value()?;
231 ComputeNodeResponse::NumericPoint(value)
232 }
233 (Variant_::SinglePoint, Some(Variant_::SinglePoint)) => {
234 let value = map.next_value()?;
235 ComputeNodeResponse::SinglePoint(value)
236 }
237 (Variant_::ArrowNumeric, Some(Variant_::ArrowNumeric)) => {
238 let value = map.next_value()?;
239 ComputeNodeResponse::ArrowNumeric(value)
240 }
241 (
242 Variant_::ArrowBucketedNumeric,
243 Some(Variant_::ArrowBucketedNumeric),
244 ) => {
245 let value = map.next_value()?;
246 ComputeNodeResponse::ArrowBucketedNumeric(value)
247 }
248 (Variant_::Enum, Some(Variant_::Enum)) => {
249 let value = map.next_value()?;
250 ComputeNodeResponse::Enum(value)
251 }
252 (Variant_::EnumPoint, Some(Variant_::EnumPoint)) => {
253 let value = map.next_value()?;
254 ComputeNodeResponse::EnumPoint(value)
255 }
256 (Variant_::BucketedEnum, Some(Variant_::BucketedEnum)) => {
257 let value = map.next_value()?;
258 ComputeNodeResponse::BucketedEnum(value)
259 }
260 (Variant_::ArrowEnum, Some(Variant_::ArrowEnum)) => {
261 let value = map.next_value()?;
262 ComputeNodeResponse::ArrowEnum(value)
263 }
264 (Variant_::ArrowBucketedEnum, Some(Variant_::ArrowBucketedEnum)) => {
265 let value = map.next_value()?;
266 ComputeNodeResponse::ArrowBucketedEnum(value)
267 }
268 (Variant_::PagedLog, Some(Variant_::PagedLog)) => {
269 let value = map.next_value()?;
270 ComputeNodeResponse::PagedLog(value)
271 }
272 (Variant_::LogPoint, Some(Variant_::LogPoint)) => {
273 let value = map.next_value()?;
274 ComputeNodeResponse::LogPoint(value)
275 }
276 (Variant_::Cartesian, Some(Variant_::Cartesian)) => {
277 let value = map.next_value()?;
278 ComputeNodeResponse::Cartesian(value)
279 }
280 (Variant_::BucketedCartesian, Some(Variant_::BucketedCartesian)) => {
281 let value = map.next_value()?;
282 ComputeNodeResponse::BucketedCartesian(value)
283 }
284 (
285 Variant_::BucketedCartesian3d,
286 Some(Variant_::BucketedCartesian3d),
287 ) => {
288 let value = map.next_value()?;
289 ComputeNodeResponse::BucketedCartesian3d(value)
290 }
291 (Variant_::FrequencyDomain, Some(Variant_::FrequencyDomain)) => {
292 let value = map.next_value()?;
293 ComputeNodeResponse::FrequencyDomain(value)
294 }
295 (Variant_::FrequencyDomainV2, Some(Variant_::FrequencyDomainV2)) => {
296 let value = map.next_value()?;
297 ComputeNodeResponse::FrequencyDomainV2(value)
298 }
299 (
300 Variant_::BucketedFrequencyDomain,
301 Some(Variant_::BucketedFrequencyDomain),
302 ) => {
303 let value = map.next_value()?;
304 ComputeNodeResponse::BucketedFrequencyDomain(value)
305 }
306 (Variant_::NumericHistogram, Some(Variant_::NumericHistogram)) => {
307 let value = map.next_value()?;
308 ComputeNodeResponse::NumericHistogram(value)
309 }
310 (Variant_::EnumHistogram, Some(Variant_::EnumHistogram)) => {
311 let value = map.next_value()?;
312 ComputeNodeResponse::EnumHistogram(value)
313 }
314 (Variant_::CurveFit, Some(Variant_::CurveFit)) => {
315 let value = map.next_value()?;
316 ComputeNodeResponse::CurveFit(value)
317 }
318 (Variant_::Grouped, Some(Variant_::Grouped)) => {
319 let value = map.next_value()?;
320 ComputeNodeResponse::Grouped(value)
321 }
322 (Variant_::Array, Some(Variant_::Array)) => {
323 let value = map.next_value()?;
324 ComputeNodeResponse::Array(value)
325 }
326 (Variant_::BucketedStruct, Some(Variant_::BucketedStruct)) => {
327 let value = map.next_value()?;
328 ComputeNodeResponse::BucketedStruct(value)
329 }
330 (Variant_::ArrowStruct, Some(Variant_::ArrowStruct)) => {
331 let value = map.next_value()?;
332 ComputeNodeResponse::ArrowStruct(value)
333 }
334 (Variant_::FullResolution, Some(Variant_::FullResolution)) => {
335 let value = map.next_value()?;
336 ComputeNodeResponse::FullResolution(value)
337 }
338 (
339 Variant_::ArrowBucketedMultivariate,
340 Some(Variant_::ArrowBucketedMultivariate),
341 ) => {
342 let value = map.next_value()?;
343 ComputeNodeResponse::ArrowBucketedMultivariate(value)
344 }
345 (Variant_::Multivariate, Some(Variant_::Multivariate)) => {
346 let value = map.next_value()?;
347 ComputeNodeResponse::Multivariate(value)
348 }
349 (Variant_::Unknown(type_), Some(Variant_::Unknown(b))) => {
350 if type_ == b {
351 let value = map.next_value()?;
352 ComputeNodeResponse::Unknown(Unknown { type_, value })
353 } else {
354 return Err(
355 de::Error::invalid_value(de::Unexpected::Str(&type_), &&*b),
356 )
357 }
358 }
359 (variant, Some(key)) => {
360 return Err(
361 de::Error::invalid_value(
362 de::Unexpected::Str(key.as_str()),
363 &variant.as_str(),
364 ),
365 );
366 }
367 (variant, None) => {
368 return Err(de::Error::missing_field(variant.as_str()));
369 }
370 }
371 }
372 Some(UnionField_::Value(variant)) => {
373 let value = match &variant {
374 Variant_::Range => {
375 let value = map.next_value()?;
376 ComputeNodeResponse::Range(value)
377 }
378 Variant_::RangesSummary => {
379 let value = map.next_value()?;
380 ComputeNodeResponse::RangesSummary(value)
381 }
382 Variant_::RangeValue => {
383 let value = map.next_value()?;
384 ComputeNodeResponse::RangeValue(value)
385 }
386 Variant_::Numeric => {
387 let value = map.next_value()?;
388 ComputeNodeResponse::Numeric(value)
389 }
390 Variant_::BucketedNumeric => {
391 let value = map.next_value()?;
392 ComputeNodeResponse::BucketedNumeric(value)
393 }
394 Variant_::NumericPoint => {
395 let value = map.next_value()?;
396 ComputeNodeResponse::NumericPoint(value)
397 }
398 Variant_::SinglePoint => {
399 let value = map.next_value()?;
400 ComputeNodeResponse::SinglePoint(value)
401 }
402 Variant_::ArrowNumeric => {
403 let value = map.next_value()?;
404 ComputeNodeResponse::ArrowNumeric(value)
405 }
406 Variant_::ArrowBucketedNumeric => {
407 let value = map.next_value()?;
408 ComputeNodeResponse::ArrowBucketedNumeric(value)
409 }
410 Variant_::Enum => {
411 let value = map.next_value()?;
412 ComputeNodeResponse::Enum(value)
413 }
414 Variant_::EnumPoint => {
415 let value = map.next_value()?;
416 ComputeNodeResponse::EnumPoint(value)
417 }
418 Variant_::BucketedEnum => {
419 let value = map.next_value()?;
420 ComputeNodeResponse::BucketedEnum(value)
421 }
422 Variant_::ArrowEnum => {
423 let value = map.next_value()?;
424 ComputeNodeResponse::ArrowEnum(value)
425 }
426 Variant_::ArrowBucketedEnum => {
427 let value = map.next_value()?;
428 ComputeNodeResponse::ArrowBucketedEnum(value)
429 }
430 Variant_::PagedLog => {
431 let value = map.next_value()?;
432 ComputeNodeResponse::PagedLog(value)
433 }
434 Variant_::LogPoint => {
435 let value = map.next_value()?;
436 ComputeNodeResponse::LogPoint(value)
437 }
438 Variant_::Cartesian => {
439 let value = map.next_value()?;
440 ComputeNodeResponse::Cartesian(value)
441 }
442 Variant_::BucketedCartesian => {
443 let value = map.next_value()?;
444 ComputeNodeResponse::BucketedCartesian(value)
445 }
446 Variant_::BucketedCartesian3d => {
447 let value = map.next_value()?;
448 ComputeNodeResponse::BucketedCartesian3d(value)
449 }
450 Variant_::FrequencyDomain => {
451 let value = map.next_value()?;
452 ComputeNodeResponse::FrequencyDomain(value)
453 }
454 Variant_::FrequencyDomainV2 => {
455 let value = map.next_value()?;
456 ComputeNodeResponse::FrequencyDomainV2(value)
457 }
458 Variant_::BucketedFrequencyDomain => {
459 let value = map.next_value()?;
460 ComputeNodeResponse::BucketedFrequencyDomain(value)
461 }
462 Variant_::NumericHistogram => {
463 let value = map.next_value()?;
464 ComputeNodeResponse::NumericHistogram(value)
465 }
466 Variant_::EnumHistogram => {
467 let value = map.next_value()?;
468 ComputeNodeResponse::EnumHistogram(value)
469 }
470 Variant_::CurveFit => {
471 let value = map.next_value()?;
472 ComputeNodeResponse::CurveFit(value)
473 }
474 Variant_::Grouped => {
475 let value = map.next_value()?;
476 ComputeNodeResponse::Grouped(value)
477 }
478 Variant_::Array => {
479 let value = map.next_value()?;
480 ComputeNodeResponse::Array(value)
481 }
482 Variant_::BucketedStruct => {
483 let value = map.next_value()?;
484 ComputeNodeResponse::BucketedStruct(value)
485 }
486 Variant_::ArrowStruct => {
487 let value = map.next_value()?;
488 ComputeNodeResponse::ArrowStruct(value)
489 }
490 Variant_::FullResolution => {
491 let value = map.next_value()?;
492 ComputeNodeResponse::FullResolution(value)
493 }
494 Variant_::ArrowBucketedMultivariate => {
495 let value = map.next_value()?;
496 ComputeNodeResponse::ArrowBucketedMultivariate(value)
497 }
498 Variant_::Multivariate => {
499 let value = map.next_value()?;
500 ComputeNodeResponse::Multivariate(value)
501 }
502 Variant_::Unknown(type_) => {
503 let value = map.next_value()?;
504 ComputeNodeResponse::Unknown(Unknown {
505 type_: type_.clone(),
506 value,
507 })
508 }
509 };
510 if map.next_key::<UnionTypeField_>()?.is_none() {
511 return Err(de::Error::missing_field("type"));
512 }
513 let type_variant = map.next_value::<Variant_>()?;
514 if variant != type_variant {
515 return Err(
516 de::Error::invalid_value(
517 de::Unexpected::Str(type_variant.as_str()),
518 &variant.as_str(),
519 ),
520 );
521 }
522 value
523 }
524 None => return Err(de::Error::missing_field("type")),
525 };
526 if map.next_key::<UnionField_<Variant_>>()?.is_some() {
527 return Err(de::Error::invalid_length(3, &"type and value fields"));
528 }
529 Ok(v)
530 }
531}
532#[derive(PartialEq)]
533enum Variant_ {
534 Range,
535 RangesSummary,
536 RangeValue,
537 Numeric,
538 BucketedNumeric,
539 NumericPoint,
540 SinglePoint,
541 ArrowNumeric,
542 ArrowBucketedNumeric,
543 Enum,
544 EnumPoint,
545 BucketedEnum,
546 ArrowEnum,
547 ArrowBucketedEnum,
548 PagedLog,
549 LogPoint,
550 Cartesian,
551 BucketedCartesian,
552 BucketedCartesian3d,
553 FrequencyDomain,
554 FrequencyDomainV2,
555 BucketedFrequencyDomain,
556 NumericHistogram,
557 EnumHistogram,
558 CurveFit,
559 Grouped,
560 Array,
561 BucketedStruct,
562 ArrowStruct,
563 FullResolution,
564 ArrowBucketedMultivariate,
565 Multivariate,
566 Unknown(Box<str>),
567}
568impl Variant_ {
569 fn as_str(&self) -> &'static str {
570 match *self {
571 Variant_::Range => "range",
572 Variant_::RangesSummary => "rangesSummary",
573 Variant_::RangeValue => "rangeValue",
574 Variant_::Numeric => "numeric",
575 Variant_::BucketedNumeric => "bucketedNumeric",
576 Variant_::NumericPoint => "numericPoint",
577 Variant_::SinglePoint => "singlePoint",
578 Variant_::ArrowNumeric => "arrowNumeric",
579 Variant_::ArrowBucketedNumeric => "arrowBucketedNumeric",
580 Variant_::Enum => "enum",
581 Variant_::EnumPoint => "enumPoint",
582 Variant_::BucketedEnum => "bucketedEnum",
583 Variant_::ArrowEnum => "arrowEnum",
584 Variant_::ArrowBucketedEnum => "arrowBucketedEnum",
585 Variant_::PagedLog => "pagedLog",
586 Variant_::LogPoint => "logPoint",
587 Variant_::Cartesian => "cartesian",
588 Variant_::BucketedCartesian => "bucketedCartesian",
589 Variant_::BucketedCartesian3d => "bucketedCartesian3d",
590 Variant_::FrequencyDomain => "frequencyDomain",
591 Variant_::FrequencyDomainV2 => "frequencyDomainV2",
592 Variant_::BucketedFrequencyDomain => "bucketedFrequencyDomain",
593 Variant_::NumericHistogram => "numericHistogram",
594 Variant_::EnumHistogram => "enumHistogram",
595 Variant_::CurveFit => "curveFit",
596 Variant_::Grouped => "grouped",
597 Variant_::Array => "array",
598 Variant_::BucketedStruct => "bucketedStruct",
599 Variant_::ArrowStruct => "arrowStruct",
600 Variant_::FullResolution => "fullResolution",
601 Variant_::ArrowBucketedMultivariate => "arrowBucketedMultivariate",
602 Variant_::Multivariate => "multivariate",
603 Variant_::Unknown(_) => "unknown variant",
604 }
605 }
606}
607impl<'de> de::Deserialize<'de> for Variant_ {
608 fn deserialize<D>(d: D) -> Result<Variant_, D::Error>
609 where
610 D: de::Deserializer<'de>,
611 {
612 d.deserialize_str(VariantVisitor_)
613 }
614}
615struct VariantVisitor_;
616impl<'de> de::Visitor<'de> for VariantVisitor_ {
617 type Value = Variant_;
618 fn expecting(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
619 fmt.write_str("string")
620 }
621 fn visit_str<E>(self, value: &str) -> Result<Variant_, E>
622 where
623 E: de::Error,
624 {
625 let v = match value {
626 "range" => Variant_::Range,
627 "rangesSummary" => Variant_::RangesSummary,
628 "rangeValue" => Variant_::RangeValue,
629 "numeric" => Variant_::Numeric,
630 "bucketedNumeric" => Variant_::BucketedNumeric,
631 "numericPoint" => Variant_::NumericPoint,
632 "singlePoint" => Variant_::SinglePoint,
633 "arrowNumeric" => Variant_::ArrowNumeric,
634 "arrowBucketedNumeric" => Variant_::ArrowBucketedNumeric,
635 "enum" => Variant_::Enum,
636 "enumPoint" => Variant_::EnumPoint,
637 "bucketedEnum" => Variant_::BucketedEnum,
638 "arrowEnum" => Variant_::ArrowEnum,
639 "arrowBucketedEnum" => Variant_::ArrowBucketedEnum,
640 "pagedLog" => Variant_::PagedLog,
641 "logPoint" => Variant_::LogPoint,
642 "cartesian" => Variant_::Cartesian,
643 "bucketedCartesian" => Variant_::BucketedCartesian,
644 "bucketedCartesian3d" => Variant_::BucketedCartesian3d,
645 "frequencyDomain" => Variant_::FrequencyDomain,
646 "frequencyDomainV2" => Variant_::FrequencyDomainV2,
647 "bucketedFrequencyDomain" => Variant_::BucketedFrequencyDomain,
648 "numericHistogram" => Variant_::NumericHistogram,
649 "enumHistogram" => Variant_::EnumHistogram,
650 "curveFit" => Variant_::CurveFit,
651 "grouped" => Variant_::Grouped,
652 "array" => Variant_::Array,
653 "bucketedStruct" => Variant_::BucketedStruct,
654 "arrowStruct" => Variant_::ArrowStruct,
655 "fullResolution" => Variant_::FullResolution,
656 "arrowBucketedMultivariate" => Variant_::ArrowBucketedMultivariate,
657 "multivariate" => Variant_::Multivariate,
658 value => Variant_::Unknown(value.to_string().into_boxed_str()),
659 };
660 Ok(v)
661 }
662}
663#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
665pub struct Unknown {
666 type_: Box<str>,
667 value: conjure_object::Any,
668}
669impl Unknown {
670 #[inline]
672 pub fn type_(&self) -> &str {
673 &self.type_
674 }
675}