Skip to main content

risingwave_pb/
data.serde.rs

1#![allow(clippy::useless_conversion)]
2#![allow(clippy::useless_borrows_in_formatting)]
3use crate::data::*;
4impl serde::Serialize for Array {
5    #[allow(deprecated)]
6    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
7    where
8        S: serde::Serializer,
9    {
10        use serde::ser::SerializeStruct;
11        let mut len = 0;
12        if self.array_type != 0 {
13            len += 1;
14        }
15        if self.null_bitmap.is_some() {
16            len += 1;
17        }
18        if !self.values.is_empty() {
19            len += 1;
20        }
21        if self.struct_array_data.is_some() {
22            len += 1;
23        }
24        if self.list_array_data.is_some() {
25            len += 1;
26        }
27        let mut struct_ser = serializer.serialize_struct("data.Array", len)?;
28        if self.array_type != 0 {
29            let v = ArrayType::try_from(self.array_type)
30                .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.array_type)))?;
31            struct_ser.serialize_field("arrayType", &v)?;
32        }
33        if let Some(v) = self.null_bitmap.as_ref() {
34            struct_ser.serialize_field("nullBitmap", v)?;
35        }
36        if !self.values.is_empty() {
37            struct_ser.serialize_field("values", &self.values)?;
38        }
39        if let Some(v) = self.struct_array_data.as_ref() {
40            struct_ser.serialize_field("structArrayData", v)?;
41        }
42        if let Some(v) = self.list_array_data.as_ref() {
43            struct_ser.serialize_field("listArrayData", v)?;
44        }
45        struct_ser.end()
46    }
47}
48impl<'de> serde::Deserialize<'de> for Array {
49    #[allow(deprecated)]
50    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
51    where
52        D: serde::Deserializer<'de>,
53    {
54        const FIELDS: &[&str] = &[
55            "array_type",
56            "arrayType",
57            "null_bitmap",
58            "nullBitmap",
59            "values",
60            "struct_array_data",
61            "structArrayData",
62            "list_array_data",
63            "listArrayData",
64        ];
65
66        #[allow(clippy::enum_variant_names)]
67        enum GeneratedField {
68            ArrayType,
69            NullBitmap,
70            Values,
71            StructArrayData,
72            ListArrayData,
73        }
74        impl<'de> serde::Deserialize<'de> for GeneratedField {
75            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
76            where
77                D: serde::Deserializer<'de>,
78            {
79                struct GeneratedVisitor;
80
81                impl serde::de::Visitor<'_> for GeneratedVisitor {
82                    type Value = GeneratedField;
83
84                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
85                        write!(formatter, "expected one of: {:?}", &FIELDS)
86                    }
87
88                    #[allow(unused_variables)]
89                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
90                    where
91                        E: serde::de::Error,
92                    {
93                        match value {
94                            "arrayType" | "array_type" => Ok(GeneratedField::ArrayType),
95                            "nullBitmap" | "null_bitmap" => Ok(GeneratedField::NullBitmap),
96                            "values" => Ok(GeneratedField::Values),
97                            "structArrayData" | "struct_array_data" => Ok(GeneratedField::StructArrayData),
98                            "listArrayData" | "list_array_data" => Ok(GeneratedField::ListArrayData),
99                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
100                        }
101                    }
102                }
103                deserializer.deserialize_identifier(GeneratedVisitor)
104            }
105        }
106        struct GeneratedVisitor;
107        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
108            type Value = Array;
109
110            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
111                formatter.write_str("struct data.Array")
112            }
113
114            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Array, V::Error>
115                where
116                    V: serde::de::MapAccess<'de>,
117            {
118                let mut array_type__ = None;
119                let mut null_bitmap__ = None;
120                let mut values__ = None;
121                let mut struct_array_data__ = None;
122                let mut list_array_data__ = None;
123                while let Some(k) = map_.next_key()? {
124                    match k {
125                        GeneratedField::ArrayType => {
126                            if array_type__.is_some() {
127                                return Err(serde::de::Error::duplicate_field("arrayType"));
128                            }
129                            array_type__ = Some(map_.next_value::<ArrayType>()? as i32);
130                        }
131                        GeneratedField::NullBitmap => {
132                            if null_bitmap__.is_some() {
133                                return Err(serde::de::Error::duplicate_field("nullBitmap"));
134                            }
135                            null_bitmap__ = map_.next_value()?;
136                        }
137                        GeneratedField::Values => {
138                            if values__.is_some() {
139                                return Err(serde::de::Error::duplicate_field("values"));
140                            }
141                            values__ = Some(map_.next_value()?);
142                        }
143                        GeneratedField::StructArrayData => {
144                            if struct_array_data__.is_some() {
145                                return Err(serde::de::Error::duplicate_field("structArrayData"));
146                            }
147                            struct_array_data__ = map_.next_value()?;
148                        }
149                        GeneratedField::ListArrayData => {
150                            if list_array_data__.is_some() {
151                                return Err(serde::de::Error::duplicate_field("listArrayData"));
152                            }
153                            list_array_data__ = map_.next_value()?;
154                        }
155                    }
156                }
157                Ok(Array {
158                    array_type: array_type__.unwrap_or_default(),
159                    null_bitmap: null_bitmap__,
160                    values: values__.unwrap_or_default(),
161                    struct_array_data: struct_array_data__,
162                    list_array_data: list_array_data__,
163                })
164            }
165        }
166        deserializer.deserialize_struct("data.Array", FIELDS, GeneratedVisitor)
167    }
168}
169impl serde::Serialize for ArrayType {
170    #[allow(deprecated)]
171    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
172    where
173        S: serde::Serializer,
174    {
175        let variant = match self {
176            Self::Unspecified => "UNSPECIFIED",
177            Self::Int16 => "INT16",
178            Self::Int32 => "INT32",
179            Self::Int64 => "INT64",
180            Self::Float32 => "FLOAT32",
181            Self::Float64 => "FLOAT64",
182            Self::Utf8 => "UTF8",
183            Self::Bool => "BOOL",
184            Self::Decimal => "DECIMAL",
185            Self::Date => "DATE",
186            Self::Time => "TIME",
187            Self::Timestamp => "TIMESTAMP",
188            Self::Timestamptz => "TIMESTAMPTZ",
189            Self::Interval => "INTERVAL",
190            Self::Struct => "STRUCT",
191            Self::List => "LIST",
192            Self::Bytea => "BYTEA",
193            Self::Jsonb => "JSONB",
194            Self::Serial => "SERIAL",
195            Self::Int256 => "INT256",
196            Self::Map => "MAP",
197            Self::Vector => "VECTOR",
198            Self::Variant => "VARIANT",
199        };
200        serializer.serialize_str(variant)
201    }
202}
203impl<'de> serde::Deserialize<'de> for ArrayType {
204    #[allow(deprecated)]
205    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
206    where
207        D: serde::Deserializer<'de>,
208    {
209        const FIELDS: &[&str] = &[
210            "UNSPECIFIED",
211            "INT16",
212            "INT32",
213            "INT64",
214            "FLOAT32",
215            "FLOAT64",
216            "UTF8",
217            "BOOL",
218            "DECIMAL",
219            "DATE",
220            "TIME",
221            "TIMESTAMP",
222            "TIMESTAMPTZ",
223            "INTERVAL",
224            "STRUCT",
225            "LIST",
226            "BYTEA",
227            "JSONB",
228            "SERIAL",
229            "INT256",
230            "MAP",
231            "VECTOR",
232            "VARIANT",
233        ];
234
235        struct GeneratedVisitor;
236
237        impl serde::de::Visitor<'_> for GeneratedVisitor {
238            type Value = ArrayType;
239
240            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
241                write!(formatter, "expected one of: {:?}", &FIELDS)
242            }
243
244            fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
245            where
246                E: serde::de::Error,
247            {
248                i32::try_from(v)
249                    .ok()
250                    .and_then(|x| x.try_into().ok())
251                    .ok_or_else(|| {
252                        serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self)
253                    })
254            }
255
256            fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
257            where
258                E: serde::de::Error,
259            {
260                i32::try_from(v)
261                    .ok()
262                    .and_then(|x| x.try_into().ok())
263                    .ok_or_else(|| {
264                        serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self)
265                    })
266            }
267
268            fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
269            where
270                E: serde::de::Error,
271            {
272                match value {
273                    "UNSPECIFIED" => Ok(ArrayType::Unspecified),
274                    "INT16" => Ok(ArrayType::Int16),
275                    "INT32" => Ok(ArrayType::Int32),
276                    "INT64" => Ok(ArrayType::Int64),
277                    "FLOAT32" => Ok(ArrayType::Float32),
278                    "FLOAT64" => Ok(ArrayType::Float64),
279                    "UTF8" => Ok(ArrayType::Utf8),
280                    "BOOL" => Ok(ArrayType::Bool),
281                    "DECIMAL" => Ok(ArrayType::Decimal),
282                    "DATE" => Ok(ArrayType::Date),
283                    "TIME" => Ok(ArrayType::Time),
284                    "TIMESTAMP" => Ok(ArrayType::Timestamp),
285                    "TIMESTAMPTZ" => Ok(ArrayType::Timestamptz),
286                    "INTERVAL" => Ok(ArrayType::Interval),
287                    "STRUCT" => Ok(ArrayType::Struct),
288                    "LIST" => Ok(ArrayType::List),
289                    "BYTEA" => Ok(ArrayType::Bytea),
290                    "JSONB" => Ok(ArrayType::Jsonb),
291                    "SERIAL" => Ok(ArrayType::Serial),
292                    "INT256" => Ok(ArrayType::Int256),
293                    "MAP" => Ok(ArrayType::Map),
294                    "VECTOR" => Ok(ArrayType::Vector),
295                    "VARIANT" => Ok(ArrayType::Variant),
296                    _ => Err(serde::de::Error::unknown_variant(value, FIELDS)),
297                }
298            }
299        }
300        deserializer.deserialize_any(GeneratedVisitor)
301    }
302}
303impl serde::Serialize for DataChunk {
304    #[allow(deprecated)]
305    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
306    where
307        S: serde::Serializer,
308    {
309        use serde::ser::SerializeStruct;
310        let mut len = 0;
311        if self.cardinality != 0 {
312            len += 1;
313        }
314        if !self.columns.is_empty() {
315            len += 1;
316        }
317        let mut struct_ser = serializer.serialize_struct("data.DataChunk", len)?;
318        if self.cardinality != 0 {
319            struct_ser.serialize_field("cardinality", &self.cardinality)?;
320        }
321        if !self.columns.is_empty() {
322            struct_ser.serialize_field("columns", &self.columns)?;
323        }
324        struct_ser.end()
325    }
326}
327impl<'de> serde::Deserialize<'de> for DataChunk {
328    #[allow(deprecated)]
329    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
330    where
331        D: serde::Deserializer<'de>,
332    {
333        const FIELDS: &[&str] = &[
334            "cardinality",
335            "columns",
336        ];
337
338        #[allow(clippy::enum_variant_names)]
339        enum GeneratedField {
340            Cardinality,
341            Columns,
342        }
343        impl<'de> serde::Deserialize<'de> for GeneratedField {
344            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
345            where
346                D: serde::Deserializer<'de>,
347            {
348                struct GeneratedVisitor;
349
350                impl serde::de::Visitor<'_> for GeneratedVisitor {
351                    type Value = GeneratedField;
352
353                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
354                        write!(formatter, "expected one of: {:?}", &FIELDS)
355                    }
356
357                    #[allow(unused_variables)]
358                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
359                    where
360                        E: serde::de::Error,
361                    {
362                        match value {
363                            "cardinality" => Ok(GeneratedField::Cardinality),
364                            "columns" => Ok(GeneratedField::Columns),
365                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
366                        }
367                    }
368                }
369                deserializer.deserialize_identifier(GeneratedVisitor)
370            }
371        }
372        struct GeneratedVisitor;
373        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
374            type Value = DataChunk;
375
376            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
377                formatter.write_str("struct data.DataChunk")
378            }
379
380            fn visit_map<V>(self, mut map_: V) -> std::result::Result<DataChunk, V::Error>
381                where
382                    V: serde::de::MapAccess<'de>,
383            {
384                let mut cardinality__ = None;
385                let mut columns__ = None;
386                while let Some(k) = map_.next_key()? {
387                    match k {
388                        GeneratedField::Cardinality => {
389                            if cardinality__.is_some() {
390                                return Err(serde::de::Error::duplicate_field("cardinality"));
391                            }
392                            cardinality__ = 
393                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
394                            ;
395                        }
396                        GeneratedField::Columns => {
397                            if columns__.is_some() {
398                                return Err(serde::de::Error::duplicate_field("columns"));
399                            }
400                            columns__ = Some(map_.next_value()?);
401                        }
402                    }
403                }
404                Ok(DataChunk {
405                    cardinality: cardinality__.unwrap_or_default(),
406                    columns: columns__.unwrap_or_default(),
407                })
408            }
409        }
410        deserializer.deserialize_struct("data.DataChunk", FIELDS, GeneratedVisitor)
411    }
412}
413impl serde::Serialize for DataType {
414    #[allow(deprecated)]
415    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
416    where
417        S: serde::Serializer,
418    {
419        use serde::ser::SerializeStruct;
420        let mut len = 0;
421        if self.type_name != 0 {
422            len += 1;
423        }
424        if self.precision != 0 {
425            len += 1;
426        }
427        if self.scale != 0 {
428            len += 1;
429        }
430        if self.is_nullable {
431            len += 1;
432        }
433        if self.interval_type != 0 {
434            len += 1;
435        }
436        if !self.field_type.is_empty() {
437            len += 1;
438        }
439        if !self.field_names.is_empty() {
440            len += 1;
441        }
442        if !self.field_ids.is_empty() {
443            len += 1;
444        }
445        let mut struct_ser = serializer.serialize_struct("data.DataType", len)?;
446        if self.type_name != 0 {
447            let v = data_type::TypeName::try_from(self.type_name)
448                .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.type_name)))?;
449            struct_ser.serialize_field("typeName", &v)?;
450        }
451        if self.precision != 0 {
452            struct_ser.serialize_field("precision", &self.precision)?;
453        }
454        if self.scale != 0 {
455            struct_ser.serialize_field("scale", &self.scale)?;
456        }
457        if self.is_nullable {
458            struct_ser.serialize_field("isNullable", &self.is_nullable)?;
459        }
460        if self.interval_type != 0 {
461            let v = data_type::IntervalType::try_from(self.interval_type)
462                .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.interval_type)))?;
463            struct_ser.serialize_field("intervalType", &v)?;
464        }
465        if !self.field_type.is_empty() {
466            struct_ser.serialize_field("fieldType", &self.field_type)?;
467        }
468        if !self.field_names.is_empty() {
469            struct_ser.serialize_field("fieldNames", &self.field_names)?;
470        }
471        if !self.field_ids.is_empty() {
472            struct_ser.serialize_field("fieldIds", &self.field_ids)?;
473        }
474        struct_ser.end()
475    }
476}
477impl<'de> serde::Deserialize<'de> for DataType {
478    #[allow(deprecated)]
479    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
480    where
481        D: serde::Deserializer<'de>,
482    {
483        const FIELDS: &[&str] = &[
484            "type_name",
485            "typeName",
486            "precision",
487            "scale",
488            "is_nullable",
489            "isNullable",
490            "interval_type",
491            "intervalType",
492            "field_type",
493            "fieldType",
494            "field_names",
495            "fieldNames",
496            "field_ids",
497            "fieldIds",
498        ];
499
500        #[allow(clippy::enum_variant_names)]
501        enum GeneratedField {
502            TypeName,
503            Precision,
504            Scale,
505            IsNullable,
506            IntervalType,
507            FieldType,
508            FieldNames,
509            FieldIds,
510        }
511        impl<'de> serde::Deserialize<'de> for GeneratedField {
512            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
513            where
514                D: serde::Deserializer<'de>,
515            {
516                struct GeneratedVisitor;
517
518                impl serde::de::Visitor<'_> for GeneratedVisitor {
519                    type Value = GeneratedField;
520
521                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
522                        write!(formatter, "expected one of: {:?}", &FIELDS)
523                    }
524
525                    #[allow(unused_variables)]
526                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
527                    where
528                        E: serde::de::Error,
529                    {
530                        match value {
531                            "typeName" | "type_name" => Ok(GeneratedField::TypeName),
532                            "precision" => Ok(GeneratedField::Precision),
533                            "scale" => Ok(GeneratedField::Scale),
534                            "isNullable" | "is_nullable" => Ok(GeneratedField::IsNullable),
535                            "intervalType" | "interval_type" => Ok(GeneratedField::IntervalType),
536                            "fieldType" | "field_type" => Ok(GeneratedField::FieldType),
537                            "fieldNames" | "field_names" => Ok(GeneratedField::FieldNames),
538                            "fieldIds" | "field_ids" => Ok(GeneratedField::FieldIds),
539                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
540                        }
541                    }
542                }
543                deserializer.deserialize_identifier(GeneratedVisitor)
544            }
545        }
546        struct GeneratedVisitor;
547        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
548            type Value = DataType;
549
550            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
551                formatter.write_str("struct data.DataType")
552            }
553
554            fn visit_map<V>(self, mut map_: V) -> std::result::Result<DataType, V::Error>
555                where
556                    V: serde::de::MapAccess<'de>,
557            {
558                let mut type_name__ = None;
559                let mut precision__ = None;
560                let mut scale__ = None;
561                let mut is_nullable__ = None;
562                let mut interval_type__ = None;
563                let mut field_type__ = None;
564                let mut field_names__ = None;
565                let mut field_ids__ = None;
566                while let Some(k) = map_.next_key()? {
567                    match k {
568                        GeneratedField::TypeName => {
569                            if type_name__.is_some() {
570                                return Err(serde::de::Error::duplicate_field("typeName"));
571                            }
572                            type_name__ = Some(map_.next_value::<data_type::TypeName>()? as i32);
573                        }
574                        GeneratedField::Precision => {
575                            if precision__.is_some() {
576                                return Err(serde::de::Error::duplicate_field("precision"));
577                            }
578                            precision__ = 
579                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
580                            ;
581                        }
582                        GeneratedField::Scale => {
583                            if scale__.is_some() {
584                                return Err(serde::de::Error::duplicate_field("scale"));
585                            }
586                            scale__ = 
587                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
588                            ;
589                        }
590                        GeneratedField::IsNullable => {
591                            if is_nullable__.is_some() {
592                                return Err(serde::de::Error::duplicate_field("isNullable"));
593                            }
594                            is_nullable__ = Some(map_.next_value()?);
595                        }
596                        GeneratedField::IntervalType => {
597                            if interval_type__.is_some() {
598                                return Err(serde::de::Error::duplicate_field("intervalType"));
599                            }
600                            interval_type__ = Some(map_.next_value::<data_type::IntervalType>()? as i32);
601                        }
602                        GeneratedField::FieldType => {
603                            if field_type__.is_some() {
604                                return Err(serde::de::Error::duplicate_field("fieldType"));
605                            }
606                            field_type__ = Some(map_.next_value()?);
607                        }
608                        GeneratedField::FieldNames => {
609                            if field_names__.is_some() {
610                                return Err(serde::de::Error::duplicate_field("fieldNames"));
611                            }
612                            field_names__ = Some(map_.next_value()?);
613                        }
614                        GeneratedField::FieldIds => {
615                            if field_ids__.is_some() {
616                                return Err(serde::de::Error::duplicate_field("fieldIds"));
617                            }
618                            field_ids__ = 
619                                Some(map_.next_value::<Vec<::pbjson::private::NumberDeserialize<_>>>()?
620                                    .into_iter().map(|x| x.0).collect())
621                            ;
622                        }
623                    }
624                }
625                Ok(DataType {
626                    type_name: type_name__.unwrap_or_default(),
627                    precision: precision__.unwrap_or_default(),
628                    scale: scale__.unwrap_or_default(),
629                    is_nullable: is_nullable__.unwrap_or_default(),
630                    interval_type: interval_type__.unwrap_or_default(),
631                    field_type: field_type__.unwrap_or_default(),
632                    field_names: field_names__.unwrap_or_default(),
633                    field_ids: field_ids__.unwrap_or_default(),
634                })
635            }
636        }
637        deserializer.deserialize_struct("data.DataType", FIELDS, GeneratedVisitor)
638    }
639}
640impl serde::Serialize for data_type::IntervalType {
641    #[allow(deprecated)]
642    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
643    where
644        S: serde::Serializer,
645    {
646        let variant = match self {
647            Self::Unspecified => "UNSPECIFIED",
648            Self::Year => "YEAR",
649            Self::Month => "MONTH",
650            Self::Day => "DAY",
651            Self::Hour => "HOUR",
652            Self::Minute => "MINUTE",
653            Self::Second => "SECOND",
654            Self::YearToMonth => "YEAR_TO_MONTH",
655            Self::DayToHour => "DAY_TO_HOUR",
656            Self::DayToMinute => "DAY_TO_MINUTE",
657            Self::DayToSecond => "DAY_TO_SECOND",
658            Self::HourToMinute => "HOUR_TO_MINUTE",
659            Self::HourToSecond => "HOUR_TO_SECOND",
660            Self::MinuteToSecond => "MINUTE_TO_SECOND",
661        };
662        serializer.serialize_str(variant)
663    }
664}
665impl<'de> serde::Deserialize<'de> for data_type::IntervalType {
666    #[allow(deprecated)]
667    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
668    where
669        D: serde::Deserializer<'de>,
670    {
671        const FIELDS: &[&str] = &[
672            "UNSPECIFIED",
673            "YEAR",
674            "MONTH",
675            "DAY",
676            "HOUR",
677            "MINUTE",
678            "SECOND",
679            "YEAR_TO_MONTH",
680            "DAY_TO_HOUR",
681            "DAY_TO_MINUTE",
682            "DAY_TO_SECOND",
683            "HOUR_TO_MINUTE",
684            "HOUR_TO_SECOND",
685            "MINUTE_TO_SECOND",
686        ];
687
688        struct GeneratedVisitor;
689
690        impl serde::de::Visitor<'_> for GeneratedVisitor {
691            type Value = data_type::IntervalType;
692
693            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
694                write!(formatter, "expected one of: {:?}", &FIELDS)
695            }
696
697            fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
698            where
699                E: serde::de::Error,
700            {
701                i32::try_from(v)
702                    .ok()
703                    .and_then(|x| x.try_into().ok())
704                    .ok_or_else(|| {
705                        serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self)
706                    })
707            }
708
709            fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
710            where
711                E: serde::de::Error,
712            {
713                i32::try_from(v)
714                    .ok()
715                    .and_then(|x| x.try_into().ok())
716                    .ok_or_else(|| {
717                        serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self)
718                    })
719            }
720
721            fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
722            where
723                E: serde::de::Error,
724            {
725                match value {
726                    "UNSPECIFIED" => Ok(data_type::IntervalType::Unspecified),
727                    "YEAR" => Ok(data_type::IntervalType::Year),
728                    "MONTH" => Ok(data_type::IntervalType::Month),
729                    "DAY" => Ok(data_type::IntervalType::Day),
730                    "HOUR" => Ok(data_type::IntervalType::Hour),
731                    "MINUTE" => Ok(data_type::IntervalType::Minute),
732                    "SECOND" => Ok(data_type::IntervalType::Second),
733                    "YEAR_TO_MONTH" => Ok(data_type::IntervalType::YearToMonth),
734                    "DAY_TO_HOUR" => Ok(data_type::IntervalType::DayToHour),
735                    "DAY_TO_MINUTE" => Ok(data_type::IntervalType::DayToMinute),
736                    "DAY_TO_SECOND" => Ok(data_type::IntervalType::DayToSecond),
737                    "HOUR_TO_MINUTE" => Ok(data_type::IntervalType::HourToMinute),
738                    "HOUR_TO_SECOND" => Ok(data_type::IntervalType::HourToSecond),
739                    "MINUTE_TO_SECOND" => Ok(data_type::IntervalType::MinuteToSecond),
740                    _ => Err(serde::de::Error::unknown_variant(value, FIELDS)),
741                }
742            }
743        }
744        deserializer.deserialize_any(GeneratedVisitor)
745    }
746}
747impl serde::Serialize for data_type::TypeName {
748    #[allow(deprecated)]
749    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
750    where
751        S: serde::Serializer,
752    {
753        let variant = match self {
754            Self::TypeUnspecified => "TYPE_UNSPECIFIED",
755            Self::Int16 => "INT16",
756            Self::Int32 => "INT32",
757            Self::Int64 => "INT64",
758            Self::Float => "FLOAT",
759            Self::Double => "DOUBLE",
760            Self::Boolean => "BOOLEAN",
761            Self::Varchar => "VARCHAR",
762            Self::Decimal => "DECIMAL",
763            Self::Time => "TIME",
764            Self::Timestamp => "TIMESTAMP",
765            Self::Interval => "INTERVAL",
766            Self::Date => "DATE",
767            Self::Timestamptz => "TIMESTAMPTZ",
768            Self::Struct => "STRUCT",
769            Self::List => "LIST",
770            Self::Bytea => "BYTEA",
771            Self::Jsonb => "JSONB",
772            Self::Serial => "SERIAL",
773            Self::Int256 => "INT256",
774            Self::Map => "MAP",
775            Self::Vector => "VECTOR",
776            Self::Variant => "VARIANT",
777        };
778        serializer.serialize_str(variant)
779    }
780}
781impl<'de> serde::Deserialize<'de> for data_type::TypeName {
782    #[allow(deprecated)]
783    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
784    where
785        D: serde::Deserializer<'de>,
786    {
787        const FIELDS: &[&str] = &[
788            "TYPE_UNSPECIFIED",
789            "INT16",
790            "INT32",
791            "INT64",
792            "FLOAT",
793            "DOUBLE",
794            "BOOLEAN",
795            "VARCHAR",
796            "DECIMAL",
797            "TIME",
798            "TIMESTAMP",
799            "INTERVAL",
800            "DATE",
801            "TIMESTAMPTZ",
802            "STRUCT",
803            "LIST",
804            "BYTEA",
805            "JSONB",
806            "SERIAL",
807            "INT256",
808            "MAP",
809            "VECTOR",
810            "VARIANT",
811        ];
812
813        struct GeneratedVisitor;
814
815        impl serde::de::Visitor<'_> for GeneratedVisitor {
816            type Value = data_type::TypeName;
817
818            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
819                write!(formatter, "expected one of: {:?}", &FIELDS)
820            }
821
822            fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
823            where
824                E: serde::de::Error,
825            {
826                i32::try_from(v)
827                    .ok()
828                    .and_then(|x| x.try_into().ok())
829                    .ok_or_else(|| {
830                        serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self)
831                    })
832            }
833
834            fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
835            where
836                E: serde::de::Error,
837            {
838                i32::try_from(v)
839                    .ok()
840                    .and_then(|x| x.try_into().ok())
841                    .ok_or_else(|| {
842                        serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self)
843                    })
844            }
845
846            fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
847            where
848                E: serde::de::Error,
849            {
850                match value {
851                    "TYPE_UNSPECIFIED" => Ok(data_type::TypeName::TypeUnspecified),
852                    "INT16" => Ok(data_type::TypeName::Int16),
853                    "INT32" => Ok(data_type::TypeName::Int32),
854                    "INT64" => Ok(data_type::TypeName::Int64),
855                    "FLOAT" => Ok(data_type::TypeName::Float),
856                    "DOUBLE" => Ok(data_type::TypeName::Double),
857                    "BOOLEAN" => Ok(data_type::TypeName::Boolean),
858                    "VARCHAR" => Ok(data_type::TypeName::Varchar),
859                    "DECIMAL" => Ok(data_type::TypeName::Decimal),
860                    "TIME" => Ok(data_type::TypeName::Time),
861                    "TIMESTAMP" => Ok(data_type::TypeName::Timestamp),
862                    "INTERVAL" => Ok(data_type::TypeName::Interval),
863                    "DATE" => Ok(data_type::TypeName::Date),
864                    "TIMESTAMPTZ" => Ok(data_type::TypeName::Timestamptz),
865                    "STRUCT" => Ok(data_type::TypeName::Struct),
866                    "LIST" => Ok(data_type::TypeName::List),
867                    "BYTEA" => Ok(data_type::TypeName::Bytea),
868                    "JSONB" => Ok(data_type::TypeName::Jsonb),
869                    "SERIAL" => Ok(data_type::TypeName::Serial),
870                    "INT256" => Ok(data_type::TypeName::Int256),
871                    "MAP" => Ok(data_type::TypeName::Map),
872                    "VECTOR" => Ok(data_type::TypeName::Vector),
873                    "VARIANT" => Ok(data_type::TypeName::Variant),
874                    _ => Err(serde::de::Error::unknown_variant(value, FIELDS)),
875                }
876            }
877        }
878        deserializer.deserialize_any(GeneratedVisitor)
879    }
880}
881impl serde::Serialize for Datum {
882    #[allow(deprecated)]
883    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
884    where
885        S: serde::Serializer,
886    {
887        use serde::ser::SerializeStruct;
888        let mut len = 0;
889        if !self.body.is_empty() {
890            len += 1;
891        }
892        let mut struct_ser = serializer.serialize_struct("data.Datum", len)?;
893        if !self.body.is_empty() {
894            #[allow(clippy::needless_borrow)]
895            #[allow(clippy::needless_borrows_for_generic_args)]
896            struct_ser.serialize_field("body", pbjson::private::base64::encode(&self.body).as_str())?;
897        }
898        struct_ser.end()
899    }
900}
901impl<'de> serde::Deserialize<'de> for Datum {
902    #[allow(deprecated)]
903    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
904    where
905        D: serde::Deserializer<'de>,
906    {
907        const FIELDS: &[&str] = &[
908            "body",
909        ];
910
911        #[allow(clippy::enum_variant_names)]
912        enum GeneratedField {
913            Body,
914        }
915        impl<'de> serde::Deserialize<'de> for GeneratedField {
916            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
917            where
918                D: serde::Deserializer<'de>,
919            {
920                struct GeneratedVisitor;
921
922                impl serde::de::Visitor<'_> for GeneratedVisitor {
923                    type Value = GeneratedField;
924
925                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
926                        write!(formatter, "expected one of: {:?}", &FIELDS)
927                    }
928
929                    #[allow(unused_variables)]
930                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
931                    where
932                        E: serde::de::Error,
933                    {
934                        match value {
935                            "body" => Ok(GeneratedField::Body),
936                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
937                        }
938                    }
939                }
940                deserializer.deserialize_identifier(GeneratedVisitor)
941            }
942        }
943        struct GeneratedVisitor;
944        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
945            type Value = Datum;
946
947            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
948                formatter.write_str("struct data.Datum")
949            }
950
951            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Datum, V::Error>
952                where
953                    V: serde::de::MapAccess<'de>,
954            {
955                let mut body__ = None;
956                while let Some(k) = map_.next_key()? {
957                    match k {
958                        GeneratedField::Body => {
959                            if body__.is_some() {
960                                return Err(serde::de::Error::duplicate_field("body"));
961                            }
962                            body__ = 
963                                Some(map_.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0)
964                            ;
965                        }
966                    }
967                }
968                Ok(Datum {
969                    body: body__.unwrap_or_default(),
970                })
971            }
972        }
973        deserializer.deserialize_struct("data.Datum", FIELDS, GeneratedVisitor)
974    }
975}
976impl serde::Serialize for Epoch {
977    #[allow(deprecated)]
978    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
979    where
980        S: serde::Serializer,
981    {
982        use serde::ser::SerializeStruct;
983        let mut len = 0;
984        if self.curr != 0 {
985            len += 1;
986        }
987        if self.prev != 0 {
988            len += 1;
989        }
990        let mut struct_ser = serializer.serialize_struct("data.Epoch", len)?;
991        if self.curr != 0 {
992            #[allow(clippy::needless_borrow)]
993            #[allow(clippy::needless_borrows_for_generic_args)]
994            struct_ser.serialize_field("curr", ToString::to_string(&self.curr).as_str())?;
995        }
996        if self.prev != 0 {
997            #[allow(clippy::needless_borrow)]
998            #[allow(clippy::needless_borrows_for_generic_args)]
999            struct_ser.serialize_field("prev", ToString::to_string(&self.prev).as_str())?;
1000        }
1001        struct_ser.end()
1002    }
1003}
1004impl<'de> serde::Deserialize<'de> for Epoch {
1005    #[allow(deprecated)]
1006    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1007    where
1008        D: serde::Deserializer<'de>,
1009    {
1010        const FIELDS: &[&str] = &[
1011            "curr",
1012            "prev",
1013        ];
1014
1015        #[allow(clippy::enum_variant_names)]
1016        enum GeneratedField {
1017            Curr,
1018            Prev,
1019        }
1020        impl<'de> serde::Deserialize<'de> for GeneratedField {
1021            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1022            where
1023                D: serde::Deserializer<'de>,
1024            {
1025                struct GeneratedVisitor;
1026
1027                impl serde::de::Visitor<'_> for GeneratedVisitor {
1028                    type Value = GeneratedField;
1029
1030                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1031                        write!(formatter, "expected one of: {:?}", &FIELDS)
1032                    }
1033
1034                    #[allow(unused_variables)]
1035                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1036                    where
1037                        E: serde::de::Error,
1038                    {
1039                        match value {
1040                            "curr" => Ok(GeneratedField::Curr),
1041                            "prev" => Ok(GeneratedField::Prev),
1042                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1043                        }
1044                    }
1045                }
1046                deserializer.deserialize_identifier(GeneratedVisitor)
1047            }
1048        }
1049        struct GeneratedVisitor;
1050        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1051            type Value = Epoch;
1052
1053            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1054                formatter.write_str("struct data.Epoch")
1055            }
1056
1057            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Epoch, V::Error>
1058                where
1059                    V: serde::de::MapAccess<'de>,
1060            {
1061                let mut curr__ = None;
1062                let mut prev__ = None;
1063                while let Some(k) = map_.next_key()? {
1064                    match k {
1065                        GeneratedField::Curr => {
1066                            if curr__.is_some() {
1067                                return Err(serde::de::Error::duplicate_field("curr"));
1068                            }
1069                            curr__ = 
1070                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1071                            ;
1072                        }
1073                        GeneratedField::Prev => {
1074                            if prev__.is_some() {
1075                                return Err(serde::de::Error::duplicate_field("prev"));
1076                            }
1077                            prev__ = 
1078                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1079                            ;
1080                        }
1081                    }
1082                }
1083                Ok(Epoch {
1084                    curr: curr__.unwrap_or_default(),
1085                    prev: prev__.unwrap_or_default(),
1086                })
1087            }
1088        }
1089        deserializer.deserialize_struct("data.Epoch", FIELDS, GeneratedVisitor)
1090    }
1091}
1092impl serde::Serialize for Interval {
1093    #[allow(deprecated)]
1094    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1095    where
1096        S: serde::Serializer,
1097    {
1098        use serde::ser::SerializeStruct;
1099        let mut len = 0;
1100        if self.months != 0 {
1101            len += 1;
1102        }
1103        if self.days != 0 {
1104            len += 1;
1105        }
1106        if self.usecs != 0 {
1107            len += 1;
1108        }
1109        let mut struct_ser = serializer.serialize_struct("data.Interval", len)?;
1110        if self.months != 0 {
1111            struct_ser.serialize_field("months", &self.months)?;
1112        }
1113        if self.days != 0 {
1114            struct_ser.serialize_field("days", &self.days)?;
1115        }
1116        if self.usecs != 0 {
1117            #[allow(clippy::needless_borrow)]
1118            #[allow(clippy::needless_borrows_for_generic_args)]
1119            struct_ser.serialize_field("usecs", ToString::to_string(&self.usecs).as_str())?;
1120        }
1121        struct_ser.end()
1122    }
1123}
1124impl<'de> serde::Deserialize<'de> for Interval {
1125    #[allow(deprecated)]
1126    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1127    where
1128        D: serde::Deserializer<'de>,
1129    {
1130        const FIELDS: &[&str] = &[
1131            "months",
1132            "days",
1133            "usecs",
1134        ];
1135
1136        #[allow(clippy::enum_variant_names)]
1137        enum GeneratedField {
1138            Months,
1139            Days,
1140            Usecs,
1141        }
1142        impl<'de> serde::Deserialize<'de> for GeneratedField {
1143            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1144            where
1145                D: serde::Deserializer<'de>,
1146            {
1147                struct GeneratedVisitor;
1148
1149                impl serde::de::Visitor<'_> for GeneratedVisitor {
1150                    type Value = GeneratedField;
1151
1152                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1153                        write!(formatter, "expected one of: {:?}", &FIELDS)
1154                    }
1155
1156                    #[allow(unused_variables)]
1157                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1158                    where
1159                        E: serde::de::Error,
1160                    {
1161                        match value {
1162                            "months" => Ok(GeneratedField::Months),
1163                            "days" => Ok(GeneratedField::Days),
1164                            "usecs" => Ok(GeneratedField::Usecs),
1165                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1166                        }
1167                    }
1168                }
1169                deserializer.deserialize_identifier(GeneratedVisitor)
1170            }
1171        }
1172        struct GeneratedVisitor;
1173        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1174            type Value = Interval;
1175
1176            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1177                formatter.write_str("struct data.Interval")
1178            }
1179
1180            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Interval, V::Error>
1181                where
1182                    V: serde::de::MapAccess<'de>,
1183            {
1184                let mut months__ = None;
1185                let mut days__ = None;
1186                let mut usecs__ = None;
1187                while let Some(k) = map_.next_key()? {
1188                    match k {
1189                        GeneratedField::Months => {
1190                            if months__.is_some() {
1191                                return Err(serde::de::Error::duplicate_field("months"));
1192                            }
1193                            months__ = 
1194                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1195                            ;
1196                        }
1197                        GeneratedField::Days => {
1198                            if days__.is_some() {
1199                                return Err(serde::de::Error::duplicate_field("days"));
1200                            }
1201                            days__ = 
1202                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1203                            ;
1204                        }
1205                        GeneratedField::Usecs => {
1206                            if usecs__.is_some() {
1207                                return Err(serde::de::Error::duplicate_field("usecs"));
1208                            }
1209                            usecs__ = 
1210                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1211                            ;
1212                        }
1213                    }
1214                }
1215                Ok(Interval {
1216                    months: months__.unwrap_or_default(),
1217                    days: days__.unwrap_or_default(),
1218                    usecs: usecs__.unwrap_or_default(),
1219                })
1220            }
1221        }
1222        deserializer.deserialize_struct("data.Interval", FIELDS, GeneratedVisitor)
1223    }
1224}
1225impl serde::Serialize for ListArrayData {
1226    #[allow(deprecated)]
1227    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1228    where
1229        S: serde::Serializer,
1230    {
1231        use serde::ser::SerializeStruct;
1232        let mut len = 0;
1233        if !self.offsets.is_empty() {
1234            len += 1;
1235        }
1236        if self.value.is_some() {
1237            len += 1;
1238        }
1239        if self.value_type.is_some() {
1240            len += 1;
1241        }
1242        if self.elem_size.is_some() {
1243            len += 1;
1244        }
1245        let mut struct_ser = serializer.serialize_struct("data.ListArrayData", len)?;
1246        if !self.offsets.is_empty() {
1247            struct_ser.serialize_field("offsets", &self.offsets)?;
1248        }
1249        if let Some(v) = self.value.as_ref() {
1250            struct_ser.serialize_field("value", v)?;
1251        }
1252        if let Some(v) = self.value_type.as_ref() {
1253            struct_ser.serialize_field("valueType", v)?;
1254        }
1255        if let Some(v) = self.elem_size.as_ref() {
1256            struct_ser.serialize_field("elemSize", v)?;
1257        }
1258        struct_ser.end()
1259    }
1260}
1261impl<'de> serde::Deserialize<'de> for ListArrayData {
1262    #[allow(deprecated)]
1263    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1264    where
1265        D: serde::Deserializer<'de>,
1266    {
1267        const FIELDS: &[&str] = &[
1268            "offsets",
1269            "value",
1270            "value_type",
1271            "valueType",
1272            "elem_size",
1273            "elemSize",
1274        ];
1275
1276        #[allow(clippy::enum_variant_names)]
1277        enum GeneratedField {
1278            Offsets,
1279            Value,
1280            ValueType,
1281            ElemSize,
1282        }
1283        impl<'de> serde::Deserialize<'de> for GeneratedField {
1284            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1285            where
1286                D: serde::Deserializer<'de>,
1287            {
1288                struct GeneratedVisitor;
1289
1290                impl serde::de::Visitor<'_> for GeneratedVisitor {
1291                    type Value = GeneratedField;
1292
1293                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1294                        write!(formatter, "expected one of: {:?}", &FIELDS)
1295                    }
1296
1297                    #[allow(unused_variables)]
1298                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1299                    where
1300                        E: serde::de::Error,
1301                    {
1302                        match value {
1303                            "offsets" => Ok(GeneratedField::Offsets),
1304                            "value" => Ok(GeneratedField::Value),
1305                            "valueType" | "value_type" => Ok(GeneratedField::ValueType),
1306                            "elemSize" | "elem_size" => Ok(GeneratedField::ElemSize),
1307                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1308                        }
1309                    }
1310                }
1311                deserializer.deserialize_identifier(GeneratedVisitor)
1312            }
1313        }
1314        struct GeneratedVisitor;
1315        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1316            type Value = ListArrayData;
1317
1318            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1319                formatter.write_str("struct data.ListArrayData")
1320            }
1321
1322            fn visit_map<V>(self, mut map_: V) -> std::result::Result<ListArrayData, V::Error>
1323                where
1324                    V: serde::de::MapAccess<'de>,
1325            {
1326                let mut offsets__ = None;
1327                let mut value__ = None;
1328                let mut value_type__ = None;
1329                let mut elem_size__ = None;
1330                while let Some(k) = map_.next_key()? {
1331                    match k {
1332                        GeneratedField::Offsets => {
1333                            if offsets__.is_some() {
1334                                return Err(serde::de::Error::duplicate_field("offsets"));
1335                            }
1336                            offsets__ = 
1337                                Some(map_.next_value::<Vec<::pbjson::private::NumberDeserialize<_>>>()?
1338                                    .into_iter().map(|x| x.0).collect())
1339                            ;
1340                        }
1341                        GeneratedField::Value => {
1342                            if value__.is_some() {
1343                                return Err(serde::de::Error::duplicate_field("value"));
1344                            }
1345                            value__ = map_.next_value()?;
1346                        }
1347                        GeneratedField::ValueType => {
1348                            if value_type__.is_some() {
1349                                return Err(serde::de::Error::duplicate_field("valueType"));
1350                            }
1351                            value_type__ = map_.next_value()?;
1352                        }
1353                        GeneratedField::ElemSize => {
1354                            if elem_size__.is_some() {
1355                                return Err(serde::de::Error::duplicate_field("elemSize"));
1356                            }
1357                            elem_size__ = 
1358                                map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0)
1359                            ;
1360                        }
1361                    }
1362                }
1363                Ok(ListArrayData {
1364                    offsets: offsets__.unwrap_or_default(),
1365                    value: value__,
1366                    value_type: value_type__,
1367                    elem_size: elem_size__,
1368                })
1369            }
1370        }
1371        deserializer.deserialize_struct("data.ListArrayData", FIELDS, GeneratedVisitor)
1372    }
1373}
1374impl serde::Serialize for Op {
1375    #[allow(deprecated)]
1376    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1377    where
1378        S: serde::Serializer,
1379    {
1380        let variant = match self {
1381            Self::Unspecified => "OP_UNSPECIFIED",
1382            Self::Insert => "INSERT",
1383            Self::Delete => "DELETE",
1384            Self::UpdateInsert => "UPDATE_INSERT",
1385            Self::UpdateDelete => "UPDATE_DELETE",
1386        };
1387        serializer.serialize_str(variant)
1388    }
1389}
1390impl<'de> serde::Deserialize<'de> for Op {
1391    #[allow(deprecated)]
1392    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1393    where
1394        D: serde::Deserializer<'de>,
1395    {
1396        const FIELDS: &[&str] = &[
1397            "OP_UNSPECIFIED",
1398            "INSERT",
1399            "DELETE",
1400            "UPDATE_INSERT",
1401            "UPDATE_DELETE",
1402        ];
1403
1404        struct GeneratedVisitor;
1405
1406        impl serde::de::Visitor<'_> for GeneratedVisitor {
1407            type Value = Op;
1408
1409            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1410                write!(formatter, "expected one of: {:?}", &FIELDS)
1411            }
1412
1413            fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
1414            where
1415                E: serde::de::Error,
1416            {
1417                i32::try_from(v)
1418                    .ok()
1419                    .and_then(|x| x.try_into().ok())
1420                    .ok_or_else(|| {
1421                        serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self)
1422                    })
1423            }
1424
1425            fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
1426            where
1427                E: serde::de::Error,
1428            {
1429                i32::try_from(v)
1430                    .ok()
1431                    .and_then(|x| x.try_into().ok())
1432                    .ok_or_else(|| {
1433                        serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self)
1434                    })
1435            }
1436
1437            fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
1438            where
1439                E: serde::de::Error,
1440            {
1441                match value {
1442                    "OP_UNSPECIFIED" => Ok(Op::Unspecified),
1443                    "INSERT" => Ok(Op::Insert),
1444                    "DELETE" => Ok(Op::Delete),
1445                    "UPDATE_INSERT" => Ok(Op::UpdateInsert),
1446                    "UPDATE_DELETE" => Ok(Op::UpdateDelete),
1447                    _ => Err(serde::de::Error::unknown_variant(value, FIELDS)),
1448                }
1449            }
1450        }
1451        deserializer.deserialize_any(GeneratedVisitor)
1452    }
1453}
1454impl serde::Serialize for StreamChunk {
1455    #[allow(deprecated)]
1456    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1457    where
1458        S: serde::Serializer,
1459    {
1460        use serde::ser::SerializeStruct;
1461        let mut len = 0;
1462        if self.cardinality != 0 {
1463            len += 1;
1464        }
1465        if !self.ops.is_empty() {
1466            len += 1;
1467        }
1468        if !self.columns.is_empty() {
1469            len += 1;
1470        }
1471        let mut struct_ser = serializer.serialize_struct("data.StreamChunk", len)?;
1472        if self.cardinality != 0 {
1473            struct_ser.serialize_field("cardinality", &self.cardinality)?;
1474        }
1475        if !self.ops.is_empty() {
1476            let v = self.ops.iter().cloned().map(|v| {
1477                Op::try_from(v)
1478                    .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", v)))
1479                }).collect::<std::result::Result<Vec<_>, _>>()?;
1480            struct_ser.serialize_field("ops", &v)?;
1481        }
1482        if !self.columns.is_empty() {
1483            struct_ser.serialize_field("columns", &self.columns)?;
1484        }
1485        struct_ser.end()
1486    }
1487}
1488impl<'de> serde::Deserialize<'de> for StreamChunk {
1489    #[allow(deprecated)]
1490    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1491    where
1492        D: serde::Deserializer<'de>,
1493    {
1494        const FIELDS: &[&str] = &[
1495            "cardinality",
1496            "ops",
1497            "columns",
1498        ];
1499
1500        #[allow(clippy::enum_variant_names)]
1501        enum GeneratedField {
1502            Cardinality,
1503            Ops,
1504            Columns,
1505        }
1506        impl<'de> serde::Deserialize<'de> for GeneratedField {
1507            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1508            where
1509                D: serde::Deserializer<'de>,
1510            {
1511                struct GeneratedVisitor;
1512
1513                impl serde::de::Visitor<'_> for GeneratedVisitor {
1514                    type Value = GeneratedField;
1515
1516                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1517                        write!(formatter, "expected one of: {:?}", &FIELDS)
1518                    }
1519
1520                    #[allow(unused_variables)]
1521                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1522                    where
1523                        E: serde::de::Error,
1524                    {
1525                        match value {
1526                            "cardinality" => Ok(GeneratedField::Cardinality),
1527                            "ops" => Ok(GeneratedField::Ops),
1528                            "columns" => Ok(GeneratedField::Columns),
1529                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1530                        }
1531                    }
1532                }
1533                deserializer.deserialize_identifier(GeneratedVisitor)
1534            }
1535        }
1536        struct GeneratedVisitor;
1537        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1538            type Value = StreamChunk;
1539
1540            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1541                formatter.write_str("struct data.StreamChunk")
1542            }
1543
1544            fn visit_map<V>(self, mut map_: V) -> std::result::Result<StreamChunk, V::Error>
1545                where
1546                    V: serde::de::MapAccess<'de>,
1547            {
1548                let mut cardinality__ = None;
1549                let mut ops__ = None;
1550                let mut columns__ = None;
1551                while let Some(k) = map_.next_key()? {
1552                    match k {
1553                        GeneratedField::Cardinality => {
1554                            if cardinality__.is_some() {
1555                                return Err(serde::de::Error::duplicate_field("cardinality"));
1556                            }
1557                            cardinality__ = 
1558                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1559                            ;
1560                        }
1561                        GeneratedField::Ops => {
1562                            if ops__.is_some() {
1563                                return Err(serde::de::Error::duplicate_field("ops"));
1564                            }
1565                            ops__ = Some(map_.next_value::<Vec<Op>>()?.into_iter().map(|x| x as i32).collect());
1566                        }
1567                        GeneratedField::Columns => {
1568                            if columns__.is_some() {
1569                                return Err(serde::de::Error::duplicate_field("columns"));
1570                            }
1571                            columns__ = Some(map_.next_value()?);
1572                        }
1573                    }
1574                }
1575                Ok(StreamChunk {
1576                    cardinality: cardinality__.unwrap_or_default(),
1577                    ops: ops__.unwrap_or_default(),
1578                    columns: columns__.unwrap_or_default(),
1579                })
1580            }
1581        }
1582        deserializer.deserialize_struct("data.StreamChunk", FIELDS, GeneratedVisitor)
1583    }
1584}
1585impl serde::Serialize for StructArrayData {
1586    #[allow(deprecated)]
1587    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1588    where
1589        S: serde::Serializer,
1590    {
1591        use serde::ser::SerializeStruct;
1592        let mut len = 0;
1593        if !self.children_array.is_empty() {
1594            len += 1;
1595        }
1596        if !self.children_type.is_empty() {
1597            len += 1;
1598        }
1599        let mut struct_ser = serializer.serialize_struct("data.StructArrayData", len)?;
1600        if !self.children_array.is_empty() {
1601            struct_ser.serialize_field("childrenArray", &self.children_array)?;
1602        }
1603        if !self.children_type.is_empty() {
1604            struct_ser.serialize_field("childrenType", &self.children_type)?;
1605        }
1606        struct_ser.end()
1607    }
1608}
1609impl<'de> serde::Deserialize<'de> for StructArrayData {
1610    #[allow(deprecated)]
1611    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1612    where
1613        D: serde::Deserializer<'de>,
1614    {
1615        const FIELDS: &[&str] = &[
1616            "children_array",
1617            "childrenArray",
1618            "children_type",
1619            "childrenType",
1620        ];
1621
1622        #[allow(clippy::enum_variant_names)]
1623        enum GeneratedField {
1624            ChildrenArray,
1625            ChildrenType,
1626        }
1627        impl<'de> serde::Deserialize<'de> for GeneratedField {
1628            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1629            where
1630                D: serde::Deserializer<'de>,
1631            {
1632                struct GeneratedVisitor;
1633
1634                impl serde::de::Visitor<'_> for GeneratedVisitor {
1635                    type Value = GeneratedField;
1636
1637                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1638                        write!(formatter, "expected one of: {:?}", &FIELDS)
1639                    }
1640
1641                    #[allow(unused_variables)]
1642                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1643                    where
1644                        E: serde::de::Error,
1645                    {
1646                        match value {
1647                            "childrenArray" | "children_array" => Ok(GeneratedField::ChildrenArray),
1648                            "childrenType" | "children_type" => Ok(GeneratedField::ChildrenType),
1649                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1650                        }
1651                    }
1652                }
1653                deserializer.deserialize_identifier(GeneratedVisitor)
1654            }
1655        }
1656        struct GeneratedVisitor;
1657        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1658            type Value = StructArrayData;
1659
1660            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1661                formatter.write_str("struct data.StructArrayData")
1662            }
1663
1664            fn visit_map<V>(self, mut map_: V) -> std::result::Result<StructArrayData, V::Error>
1665                where
1666                    V: serde::de::MapAccess<'de>,
1667            {
1668                let mut children_array__ = None;
1669                let mut children_type__ = None;
1670                while let Some(k) = map_.next_key()? {
1671                    match k {
1672                        GeneratedField::ChildrenArray => {
1673                            if children_array__.is_some() {
1674                                return Err(serde::de::Error::duplicate_field("childrenArray"));
1675                            }
1676                            children_array__ = Some(map_.next_value()?);
1677                        }
1678                        GeneratedField::ChildrenType => {
1679                            if children_type__.is_some() {
1680                                return Err(serde::de::Error::duplicate_field("childrenType"));
1681                            }
1682                            children_type__ = Some(map_.next_value()?);
1683                        }
1684                    }
1685                }
1686                Ok(StructArrayData {
1687                    children_array: children_array__.unwrap_or_default(),
1688                    children_type: children_type__.unwrap_or_default(),
1689                })
1690            }
1691        }
1692        deserializer.deserialize_struct("data.StructArrayData", FIELDS, GeneratedVisitor)
1693    }
1694}
1695impl serde::Serialize for Terminate {
1696    #[allow(deprecated)]
1697    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1698    where
1699        S: serde::Serializer,
1700    {
1701        use serde::ser::SerializeStruct;
1702        let len = 0;
1703        let struct_ser = serializer.serialize_struct("data.Terminate", len)?;
1704        struct_ser.end()
1705    }
1706}
1707impl<'de> serde::Deserialize<'de> for Terminate {
1708    #[allow(deprecated)]
1709    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1710    where
1711        D: serde::Deserializer<'de>,
1712    {
1713        const FIELDS: &[&str] = &[
1714        ];
1715
1716        #[allow(clippy::enum_variant_names)]
1717        enum GeneratedField {
1718        }
1719        impl<'de> serde::Deserialize<'de> for GeneratedField {
1720            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1721            where
1722                D: serde::Deserializer<'de>,
1723            {
1724                struct GeneratedVisitor;
1725
1726                impl serde::de::Visitor<'_> for GeneratedVisitor {
1727                    type Value = GeneratedField;
1728
1729                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1730                        write!(formatter, "expected one of: {:?}", &FIELDS)
1731                    }
1732
1733                    #[allow(unused_variables)]
1734                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1735                    where
1736                        E: serde::de::Error,
1737                    {
1738                            Err(serde::de::Error::unknown_field(value, FIELDS))
1739                    }
1740                }
1741                deserializer.deserialize_identifier(GeneratedVisitor)
1742            }
1743        }
1744        struct GeneratedVisitor;
1745        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1746            type Value = Terminate;
1747
1748            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1749                formatter.write_str("struct data.Terminate")
1750            }
1751
1752            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Terminate, V::Error>
1753                where
1754                    V: serde::de::MapAccess<'de>,
1755            {
1756                while map_.next_key::<GeneratedField>()?.is_some() {
1757                    let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1758                }
1759                Ok(Terminate {
1760                })
1761            }
1762        }
1763        deserializer.deserialize_struct("data.Terminate", FIELDS, GeneratedVisitor)
1764    }
1765}