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.field_type.is_empty() {
428            len += 1;
429        }
430        if !self.field_names.is_empty() {
431            len += 1;
432        }
433        if !self.field_ids.is_empty() {
434            len += 1;
435        }
436        let mut struct_ser = serializer.serialize_struct("data.DataType", len)?;
437        if self.type_name != 0 {
438            let v = data_type::TypeName::try_from(self.type_name)
439                .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.type_name)))?;
440            struct_ser.serialize_field("typeName", &v)?;
441        }
442        if self.precision != 0 {
443            struct_ser.serialize_field("precision", &self.precision)?;
444        }
445        if !self.field_type.is_empty() {
446            struct_ser.serialize_field("fieldType", &self.field_type)?;
447        }
448        if !self.field_names.is_empty() {
449            struct_ser.serialize_field("fieldNames", &self.field_names)?;
450        }
451        if !self.field_ids.is_empty() {
452            struct_ser.serialize_field("fieldIds", &self.field_ids)?;
453        }
454        struct_ser.end()
455    }
456}
457impl<'de> serde::Deserialize<'de> for DataType {
458    #[allow(deprecated)]
459    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
460    where
461        D: serde::Deserializer<'de>,
462    {
463        const FIELDS: &[&str] = &[
464            "type_name",
465            "typeName",
466            "precision",
467            "field_type",
468            "fieldType",
469            "field_names",
470            "fieldNames",
471            "field_ids",
472            "fieldIds",
473        ];
474
475        #[allow(clippy::enum_variant_names)]
476        enum GeneratedField {
477            TypeName,
478            Precision,
479            FieldType,
480            FieldNames,
481            FieldIds,
482        }
483        impl<'de> serde::Deserialize<'de> for GeneratedField {
484            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
485            where
486                D: serde::Deserializer<'de>,
487            {
488                struct GeneratedVisitor;
489
490                impl serde::de::Visitor<'_> for GeneratedVisitor {
491                    type Value = GeneratedField;
492
493                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
494                        write!(formatter, "expected one of: {:?}", &FIELDS)
495                    }
496
497                    #[allow(unused_variables)]
498                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
499                    where
500                        E: serde::de::Error,
501                    {
502                        match value {
503                            "typeName" | "type_name" => Ok(GeneratedField::TypeName),
504                            "precision" => Ok(GeneratedField::Precision),
505                            "fieldType" | "field_type" => Ok(GeneratedField::FieldType),
506                            "fieldNames" | "field_names" => Ok(GeneratedField::FieldNames),
507                            "fieldIds" | "field_ids" => Ok(GeneratedField::FieldIds),
508                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
509                        }
510                    }
511                }
512                deserializer.deserialize_identifier(GeneratedVisitor)
513            }
514        }
515        struct GeneratedVisitor;
516        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
517            type Value = DataType;
518
519            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
520                formatter.write_str("struct data.DataType")
521            }
522
523            fn visit_map<V>(self, mut map_: V) -> std::result::Result<DataType, V::Error>
524                where
525                    V: serde::de::MapAccess<'de>,
526            {
527                let mut type_name__ = None;
528                let mut precision__ = None;
529                let mut field_type__ = None;
530                let mut field_names__ = None;
531                let mut field_ids__ = None;
532                while let Some(k) = map_.next_key()? {
533                    match k {
534                        GeneratedField::TypeName => {
535                            if type_name__.is_some() {
536                                return Err(serde::de::Error::duplicate_field("typeName"));
537                            }
538                            type_name__ = Some(map_.next_value::<data_type::TypeName>()? as i32);
539                        }
540                        GeneratedField::Precision => {
541                            if precision__.is_some() {
542                                return Err(serde::de::Error::duplicate_field("precision"));
543                            }
544                            precision__ = 
545                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
546                            ;
547                        }
548                        GeneratedField::FieldType => {
549                            if field_type__.is_some() {
550                                return Err(serde::de::Error::duplicate_field("fieldType"));
551                            }
552                            field_type__ = Some(map_.next_value()?);
553                        }
554                        GeneratedField::FieldNames => {
555                            if field_names__.is_some() {
556                                return Err(serde::de::Error::duplicate_field("fieldNames"));
557                            }
558                            field_names__ = Some(map_.next_value()?);
559                        }
560                        GeneratedField::FieldIds => {
561                            if field_ids__.is_some() {
562                                return Err(serde::de::Error::duplicate_field("fieldIds"));
563                            }
564                            field_ids__ = 
565                                Some(map_.next_value::<Vec<::pbjson::private::NumberDeserialize<_>>>()?
566                                    .into_iter().map(|x| x.0).collect())
567                            ;
568                        }
569                    }
570                }
571                Ok(DataType {
572                    type_name: type_name__.unwrap_or_default(),
573                    precision: precision__.unwrap_or_default(),
574                    field_type: field_type__.unwrap_or_default(),
575                    field_names: field_names__.unwrap_or_default(),
576                    field_ids: field_ids__.unwrap_or_default(),
577                })
578            }
579        }
580        deserializer.deserialize_struct("data.DataType", FIELDS, GeneratedVisitor)
581    }
582}
583impl serde::Serialize for data_type::TypeName {
584    #[allow(deprecated)]
585    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
586    where
587        S: serde::Serializer,
588    {
589        let variant = match self {
590            Self::TypeUnspecified => "TYPE_UNSPECIFIED",
591            Self::Int16 => "INT16",
592            Self::Int32 => "INT32",
593            Self::Int64 => "INT64",
594            Self::Float => "FLOAT",
595            Self::Double => "DOUBLE",
596            Self::Boolean => "BOOLEAN",
597            Self::Varchar => "VARCHAR",
598            Self::Decimal => "DECIMAL",
599            Self::Time => "TIME",
600            Self::Timestamp => "TIMESTAMP",
601            Self::Interval => "INTERVAL",
602            Self::Date => "DATE",
603            Self::Timestamptz => "TIMESTAMPTZ",
604            Self::Struct => "STRUCT",
605            Self::List => "LIST",
606            Self::Bytea => "BYTEA",
607            Self::Jsonb => "JSONB",
608            Self::Serial => "SERIAL",
609            Self::Int256 => "INT256",
610            Self::Map => "MAP",
611            Self::Vector => "VECTOR",
612            Self::Variant => "VARIANT",
613        };
614        serializer.serialize_str(variant)
615    }
616}
617impl<'de> serde::Deserialize<'de> for data_type::TypeName {
618    #[allow(deprecated)]
619    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
620    where
621        D: serde::Deserializer<'de>,
622    {
623        const FIELDS: &[&str] = &[
624            "TYPE_UNSPECIFIED",
625            "INT16",
626            "INT32",
627            "INT64",
628            "FLOAT",
629            "DOUBLE",
630            "BOOLEAN",
631            "VARCHAR",
632            "DECIMAL",
633            "TIME",
634            "TIMESTAMP",
635            "INTERVAL",
636            "DATE",
637            "TIMESTAMPTZ",
638            "STRUCT",
639            "LIST",
640            "BYTEA",
641            "JSONB",
642            "SERIAL",
643            "INT256",
644            "MAP",
645            "VECTOR",
646            "VARIANT",
647        ];
648
649        struct GeneratedVisitor;
650
651        impl serde::de::Visitor<'_> for GeneratedVisitor {
652            type Value = data_type::TypeName;
653
654            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
655                write!(formatter, "expected one of: {:?}", &FIELDS)
656            }
657
658            fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
659            where
660                E: serde::de::Error,
661            {
662                i32::try_from(v)
663                    .ok()
664                    .and_then(|x| x.try_into().ok())
665                    .ok_or_else(|| {
666                        serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self)
667                    })
668            }
669
670            fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
671            where
672                E: serde::de::Error,
673            {
674                i32::try_from(v)
675                    .ok()
676                    .and_then(|x| x.try_into().ok())
677                    .ok_or_else(|| {
678                        serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self)
679                    })
680            }
681
682            fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
683            where
684                E: serde::de::Error,
685            {
686                match value {
687                    "TYPE_UNSPECIFIED" => Ok(data_type::TypeName::TypeUnspecified),
688                    "INT16" => Ok(data_type::TypeName::Int16),
689                    "INT32" => Ok(data_type::TypeName::Int32),
690                    "INT64" => Ok(data_type::TypeName::Int64),
691                    "FLOAT" => Ok(data_type::TypeName::Float),
692                    "DOUBLE" => Ok(data_type::TypeName::Double),
693                    "BOOLEAN" => Ok(data_type::TypeName::Boolean),
694                    "VARCHAR" => Ok(data_type::TypeName::Varchar),
695                    "DECIMAL" => Ok(data_type::TypeName::Decimal),
696                    "TIME" => Ok(data_type::TypeName::Time),
697                    "TIMESTAMP" => Ok(data_type::TypeName::Timestamp),
698                    "INTERVAL" => Ok(data_type::TypeName::Interval),
699                    "DATE" => Ok(data_type::TypeName::Date),
700                    "TIMESTAMPTZ" => Ok(data_type::TypeName::Timestamptz),
701                    "STRUCT" => Ok(data_type::TypeName::Struct),
702                    "LIST" => Ok(data_type::TypeName::List),
703                    "BYTEA" => Ok(data_type::TypeName::Bytea),
704                    "JSONB" => Ok(data_type::TypeName::Jsonb),
705                    "SERIAL" => Ok(data_type::TypeName::Serial),
706                    "INT256" => Ok(data_type::TypeName::Int256),
707                    "MAP" => Ok(data_type::TypeName::Map),
708                    "VECTOR" => Ok(data_type::TypeName::Vector),
709                    "VARIANT" => Ok(data_type::TypeName::Variant),
710                    _ => Err(serde::de::Error::unknown_variant(value, FIELDS)),
711                }
712            }
713        }
714        deserializer.deserialize_any(GeneratedVisitor)
715    }
716}
717impl serde::Serialize for Datum {
718    #[allow(deprecated)]
719    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
720    where
721        S: serde::Serializer,
722    {
723        use serde::ser::SerializeStruct;
724        let mut len = 0;
725        if !self.body.is_empty() {
726            len += 1;
727        }
728        let mut struct_ser = serializer.serialize_struct("data.Datum", len)?;
729        if !self.body.is_empty() {
730            #[allow(clippy::needless_borrow)]
731            #[allow(clippy::needless_borrows_for_generic_args)]
732            struct_ser.serialize_field("body", pbjson::private::base64::encode(&self.body).as_str())?;
733        }
734        struct_ser.end()
735    }
736}
737impl<'de> serde::Deserialize<'de> for Datum {
738    #[allow(deprecated)]
739    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
740    where
741        D: serde::Deserializer<'de>,
742    {
743        const FIELDS: &[&str] = &[
744            "body",
745        ];
746
747        #[allow(clippy::enum_variant_names)]
748        enum GeneratedField {
749            Body,
750        }
751        impl<'de> serde::Deserialize<'de> for GeneratedField {
752            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
753            where
754                D: serde::Deserializer<'de>,
755            {
756                struct GeneratedVisitor;
757
758                impl serde::de::Visitor<'_> for GeneratedVisitor {
759                    type Value = GeneratedField;
760
761                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
762                        write!(formatter, "expected one of: {:?}", &FIELDS)
763                    }
764
765                    #[allow(unused_variables)]
766                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
767                    where
768                        E: serde::de::Error,
769                    {
770                        match value {
771                            "body" => Ok(GeneratedField::Body),
772                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
773                        }
774                    }
775                }
776                deserializer.deserialize_identifier(GeneratedVisitor)
777            }
778        }
779        struct GeneratedVisitor;
780        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
781            type Value = Datum;
782
783            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
784                formatter.write_str("struct data.Datum")
785            }
786
787            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Datum, V::Error>
788                where
789                    V: serde::de::MapAccess<'de>,
790            {
791                let mut body__ = None;
792                while let Some(k) = map_.next_key()? {
793                    match k {
794                        GeneratedField::Body => {
795                            if body__.is_some() {
796                                return Err(serde::de::Error::duplicate_field("body"));
797                            }
798                            body__ = 
799                                Some(map_.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0)
800                            ;
801                        }
802                    }
803                }
804                Ok(Datum {
805                    body: body__.unwrap_or_default(),
806                })
807            }
808        }
809        deserializer.deserialize_struct("data.Datum", FIELDS, GeneratedVisitor)
810    }
811}
812impl serde::Serialize for Epoch {
813    #[allow(deprecated)]
814    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
815    where
816        S: serde::Serializer,
817    {
818        use serde::ser::SerializeStruct;
819        let mut len = 0;
820        if self.curr != 0 {
821            len += 1;
822        }
823        if self.prev != 0 {
824            len += 1;
825        }
826        let mut struct_ser = serializer.serialize_struct("data.Epoch", len)?;
827        if self.curr != 0 {
828            #[allow(clippy::needless_borrow)]
829            #[allow(clippy::needless_borrows_for_generic_args)]
830            struct_ser.serialize_field("curr", ToString::to_string(&self.curr).as_str())?;
831        }
832        if self.prev != 0 {
833            #[allow(clippy::needless_borrow)]
834            #[allow(clippy::needless_borrows_for_generic_args)]
835            struct_ser.serialize_field("prev", ToString::to_string(&self.prev).as_str())?;
836        }
837        struct_ser.end()
838    }
839}
840impl<'de> serde::Deserialize<'de> for Epoch {
841    #[allow(deprecated)]
842    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
843    where
844        D: serde::Deserializer<'de>,
845    {
846        const FIELDS: &[&str] = &[
847            "curr",
848            "prev",
849        ];
850
851        #[allow(clippy::enum_variant_names)]
852        enum GeneratedField {
853            Curr,
854            Prev,
855        }
856        impl<'de> serde::Deserialize<'de> for GeneratedField {
857            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
858            where
859                D: serde::Deserializer<'de>,
860            {
861                struct GeneratedVisitor;
862
863                impl serde::de::Visitor<'_> for GeneratedVisitor {
864                    type Value = GeneratedField;
865
866                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
867                        write!(formatter, "expected one of: {:?}", &FIELDS)
868                    }
869
870                    #[allow(unused_variables)]
871                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
872                    where
873                        E: serde::de::Error,
874                    {
875                        match value {
876                            "curr" => Ok(GeneratedField::Curr),
877                            "prev" => Ok(GeneratedField::Prev),
878                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
879                        }
880                    }
881                }
882                deserializer.deserialize_identifier(GeneratedVisitor)
883            }
884        }
885        struct GeneratedVisitor;
886        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
887            type Value = Epoch;
888
889            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
890                formatter.write_str("struct data.Epoch")
891            }
892
893            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Epoch, V::Error>
894                where
895                    V: serde::de::MapAccess<'de>,
896            {
897                let mut curr__ = None;
898                let mut prev__ = None;
899                while let Some(k) = map_.next_key()? {
900                    match k {
901                        GeneratedField::Curr => {
902                            if curr__.is_some() {
903                                return Err(serde::de::Error::duplicate_field("curr"));
904                            }
905                            curr__ = 
906                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
907                            ;
908                        }
909                        GeneratedField::Prev => {
910                            if prev__.is_some() {
911                                return Err(serde::de::Error::duplicate_field("prev"));
912                            }
913                            prev__ = 
914                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
915                            ;
916                        }
917                    }
918                }
919                Ok(Epoch {
920                    curr: curr__.unwrap_or_default(),
921                    prev: prev__.unwrap_or_default(),
922                })
923            }
924        }
925        deserializer.deserialize_struct("data.Epoch", FIELDS, GeneratedVisitor)
926    }
927}
928impl serde::Serialize for Interval {
929    #[allow(deprecated)]
930    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
931    where
932        S: serde::Serializer,
933    {
934        use serde::ser::SerializeStruct;
935        let mut len = 0;
936        if self.months != 0 {
937            len += 1;
938        }
939        if self.days != 0 {
940            len += 1;
941        }
942        if self.usecs != 0 {
943            len += 1;
944        }
945        let mut struct_ser = serializer.serialize_struct("data.Interval", len)?;
946        if self.months != 0 {
947            struct_ser.serialize_field("months", &self.months)?;
948        }
949        if self.days != 0 {
950            struct_ser.serialize_field("days", &self.days)?;
951        }
952        if self.usecs != 0 {
953            #[allow(clippy::needless_borrow)]
954            #[allow(clippy::needless_borrows_for_generic_args)]
955            struct_ser.serialize_field("usecs", ToString::to_string(&self.usecs).as_str())?;
956        }
957        struct_ser.end()
958    }
959}
960impl<'de> serde::Deserialize<'de> for Interval {
961    #[allow(deprecated)]
962    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
963    where
964        D: serde::Deserializer<'de>,
965    {
966        const FIELDS: &[&str] = &[
967            "months",
968            "days",
969            "usecs",
970        ];
971
972        #[allow(clippy::enum_variant_names)]
973        enum GeneratedField {
974            Months,
975            Days,
976            Usecs,
977        }
978        impl<'de> serde::Deserialize<'de> for GeneratedField {
979            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
980            where
981                D: serde::Deserializer<'de>,
982            {
983                struct GeneratedVisitor;
984
985                impl serde::de::Visitor<'_> for GeneratedVisitor {
986                    type Value = GeneratedField;
987
988                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
989                        write!(formatter, "expected one of: {:?}", &FIELDS)
990                    }
991
992                    #[allow(unused_variables)]
993                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
994                    where
995                        E: serde::de::Error,
996                    {
997                        match value {
998                            "months" => Ok(GeneratedField::Months),
999                            "days" => Ok(GeneratedField::Days),
1000                            "usecs" => Ok(GeneratedField::Usecs),
1001                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1002                        }
1003                    }
1004                }
1005                deserializer.deserialize_identifier(GeneratedVisitor)
1006            }
1007        }
1008        struct GeneratedVisitor;
1009        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1010            type Value = Interval;
1011
1012            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1013                formatter.write_str("struct data.Interval")
1014            }
1015
1016            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Interval, V::Error>
1017                where
1018                    V: serde::de::MapAccess<'de>,
1019            {
1020                let mut months__ = None;
1021                let mut days__ = None;
1022                let mut usecs__ = None;
1023                while let Some(k) = map_.next_key()? {
1024                    match k {
1025                        GeneratedField::Months => {
1026                            if months__.is_some() {
1027                                return Err(serde::de::Error::duplicate_field("months"));
1028                            }
1029                            months__ = 
1030                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1031                            ;
1032                        }
1033                        GeneratedField::Days => {
1034                            if days__.is_some() {
1035                                return Err(serde::de::Error::duplicate_field("days"));
1036                            }
1037                            days__ = 
1038                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1039                            ;
1040                        }
1041                        GeneratedField::Usecs => {
1042                            if usecs__.is_some() {
1043                                return Err(serde::de::Error::duplicate_field("usecs"));
1044                            }
1045                            usecs__ = 
1046                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1047                            ;
1048                        }
1049                    }
1050                }
1051                Ok(Interval {
1052                    months: months__.unwrap_or_default(),
1053                    days: days__.unwrap_or_default(),
1054                    usecs: usecs__.unwrap_or_default(),
1055                })
1056            }
1057        }
1058        deserializer.deserialize_struct("data.Interval", FIELDS, GeneratedVisitor)
1059    }
1060}
1061impl serde::Serialize for ListArrayData {
1062    #[allow(deprecated)]
1063    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1064    where
1065        S: serde::Serializer,
1066    {
1067        use serde::ser::SerializeStruct;
1068        let mut len = 0;
1069        if !self.offsets.is_empty() {
1070            len += 1;
1071        }
1072        if self.value.is_some() {
1073            len += 1;
1074        }
1075        if self.value_type.is_some() {
1076            len += 1;
1077        }
1078        if self.elem_size.is_some() {
1079            len += 1;
1080        }
1081        let mut struct_ser = serializer.serialize_struct("data.ListArrayData", len)?;
1082        if !self.offsets.is_empty() {
1083            struct_ser.serialize_field("offsets", &self.offsets)?;
1084        }
1085        if let Some(v) = self.value.as_ref() {
1086            struct_ser.serialize_field("value", v)?;
1087        }
1088        if let Some(v) = self.value_type.as_ref() {
1089            struct_ser.serialize_field("valueType", v)?;
1090        }
1091        if let Some(v) = self.elem_size.as_ref() {
1092            struct_ser.serialize_field("elemSize", v)?;
1093        }
1094        struct_ser.end()
1095    }
1096}
1097impl<'de> serde::Deserialize<'de> for ListArrayData {
1098    #[allow(deprecated)]
1099    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1100    where
1101        D: serde::Deserializer<'de>,
1102    {
1103        const FIELDS: &[&str] = &[
1104            "offsets",
1105            "value",
1106            "value_type",
1107            "valueType",
1108            "elem_size",
1109            "elemSize",
1110        ];
1111
1112        #[allow(clippy::enum_variant_names)]
1113        enum GeneratedField {
1114            Offsets,
1115            Value,
1116            ValueType,
1117            ElemSize,
1118        }
1119        impl<'de> serde::Deserialize<'de> for GeneratedField {
1120            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1121            where
1122                D: serde::Deserializer<'de>,
1123            {
1124                struct GeneratedVisitor;
1125
1126                impl serde::de::Visitor<'_> for GeneratedVisitor {
1127                    type Value = GeneratedField;
1128
1129                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1130                        write!(formatter, "expected one of: {:?}", &FIELDS)
1131                    }
1132
1133                    #[allow(unused_variables)]
1134                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1135                    where
1136                        E: serde::de::Error,
1137                    {
1138                        match value {
1139                            "offsets" => Ok(GeneratedField::Offsets),
1140                            "value" => Ok(GeneratedField::Value),
1141                            "valueType" | "value_type" => Ok(GeneratedField::ValueType),
1142                            "elemSize" | "elem_size" => Ok(GeneratedField::ElemSize),
1143                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1144                        }
1145                    }
1146                }
1147                deserializer.deserialize_identifier(GeneratedVisitor)
1148            }
1149        }
1150        struct GeneratedVisitor;
1151        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1152            type Value = ListArrayData;
1153
1154            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1155                formatter.write_str("struct data.ListArrayData")
1156            }
1157
1158            fn visit_map<V>(self, mut map_: V) -> std::result::Result<ListArrayData, V::Error>
1159                where
1160                    V: serde::de::MapAccess<'de>,
1161            {
1162                let mut offsets__ = None;
1163                let mut value__ = None;
1164                let mut value_type__ = None;
1165                let mut elem_size__ = None;
1166                while let Some(k) = map_.next_key()? {
1167                    match k {
1168                        GeneratedField::Offsets => {
1169                            if offsets__.is_some() {
1170                                return Err(serde::de::Error::duplicate_field("offsets"));
1171                            }
1172                            offsets__ = 
1173                                Some(map_.next_value::<Vec<::pbjson::private::NumberDeserialize<_>>>()?
1174                                    .into_iter().map(|x| x.0).collect())
1175                            ;
1176                        }
1177                        GeneratedField::Value => {
1178                            if value__.is_some() {
1179                                return Err(serde::de::Error::duplicate_field("value"));
1180                            }
1181                            value__ = map_.next_value()?;
1182                        }
1183                        GeneratedField::ValueType => {
1184                            if value_type__.is_some() {
1185                                return Err(serde::de::Error::duplicate_field("valueType"));
1186                            }
1187                            value_type__ = map_.next_value()?;
1188                        }
1189                        GeneratedField::ElemSize => {
1190                            if elem_size__.is_some() {
1191                                return Err(serde::de::Error::duplicate_field("elemSize"));
1192                            }
1193                            elem_size__ = 
1194                                map_.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0)
1195                            ;
1196                        }
1197                    }
1198                }
1199                Ok(ListArrayData {
1200                    offsets: offsets__.unwrap_or_default(),
1201                    value: value__,
1202                    value_type: value_type__,
1203                    elem_size: elem_size__,
1204                })
1205            }
1206        }
1207        deserializer.deserialize_struct("data.ListArrayData", FIELDS, GeneratedVisitor)
1208    }
1209}
1210impl serde::Serialize for Op {
1211    #[allow(deprecated)]
1212    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1213    where
1214        S: serde::Serializer,
1215    {
1216        let variant = match self {
1217            Self::Unspecified => "OP_UNSPECIFIED",
1218            Self::Insert => "INSERT",
1219            Self::Delete => "DELETE",
1220            Self::UpdateInsert => "UPDATE_INSERT",
1221            Self::UpdateDelete => "UPDATE_DELETE",
1222        };
1223        serializer.serialize_str(variant)
1224    }
1225}
1226impl<'de> serde::Deserialize<'de> for Op {
1227    #[allow(deprecated)]
1228    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1229    where
1230        D: serde::Deserializer<'de>,
1231    {
1232        const FIELDS: &[&str] = &[
1233            "OP_UNSPECIFIED",
1234            "INSERT",
1235            "DELETE",
1236            "UPDATE_INSERT",
1237            "UPDATE_DELETE",
1238        ];
1239
1240        struct GeneratedVisitor;
1241
1242        impl serde::de::Visitor<'_> for GeneratedVisitor {
1243            type Value = Op;
1244
1245            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1246                write!(formatter, "expected one of: {:?}", &FIELDS)
1247            }
1248
1249            fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
1250            where
1251                E: serde::de::Error,
1252            {
1253                i32::try_from(v)
1254                    .ok()
1255                    .and_then(|x| x.try_into().ok())
1256                    .ok_or_else(|| {
1257                        serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self)
1258                    })
1259            }
1260
1261            fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
1262            where
1263                E: serde::de::Error,
1264            {
1265                i32::try_from(v)
1266                    .ok()
1267                    .and_then(|x| x.try_into().ok())
1268                    .ok_or_else(|| {
1269                        serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self)
1270                    })
1271            }
1272
1273            fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
1274            where
1275                E: serde::de::Error,
1276            {
1277                match value {
1278                    "OP_UNSPECIFIED" => Ok(Op::Unspecified),
1279                    "INSERT" => Ok(Op::Insert),
1280                    "DELETE" => Ok(Op::Delete),
1281                    "UPDATE_INSERT" => Ok(Op::UpdateInsert),
1282                    "UPDATE_DELETE" => Ok(Op::UpdateDelete),
1283                    _ => Err(serde::de::Error::unknown_variant(value, FIELDS)),
1284                }
1285            }
1286        }
1287        deserializer.deserialize_any(GeneratedVisitor)
1288    }
1289}
1290impl serde::Serialize for StreamChunk {
1291    #[allow(deprecated)]
1292    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1293    where
1294        S: serde::Serializer,
1295    {
1296        use serde::ser::SerializeStruct;
1297        let mut len = 0;
1298        if self.cardinality != 0 {
1299            len += 1;
1300        }
1301        if !self.ops.is_empty() {
1302            len += 1;
1303        }
1304        if !self.columns.is_empty() {
1305            len += 1;
1306        }
1307        let mut struct_ser = serializer.serialize_struct("data.StreamChunk", len)?;
1308        if self.cardinality != 0 {
1309            struct_ser.serialize_field("cardinality", &self.cardinality)?;
1310        }
1311        if !self.ops.is_empty() {
1312            let v = self.ops.iter().cloned().map(|v| {
1313                Op::try_from(v)
1314                    .map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", v)))
1315                }).collect::<std::result::Result<Vec<_>, _>>()?;
1316            struct_ser.serialize_field("ops", &v)?;
1317        }
1318        if !self.columns.is_empty() {
1319            struct_ser.serialize_field("columns", &self.columns)?;
1320        }
1321        struct_ser.end()
1322    }
1323}
1324impl<'de> serde::Deserialize<'de> for StreamChunk {
1325    #[allow(deprecated)]
1326    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1327    where
1328        D: serde::Deserializer<'de>,
1329    {
1330        const FIELDS: &[&str] = &[
1331            "cardinality",
1332            "ops",
1333            "columns",
1334        ];
1335
1336        #[allow(clippy::enum_variant_names)]
1337        enum GeneratedField {
1338            Cardinality,
1339            Ops,
1340            Columns,
1341        }
1342        impl<'de> serde::Deserialize<'de> for GeneratedField {
1343            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1344            where
1345                D: serde::Deserializer<'de>,
1346            {
1347                struct GeneratedVisitor;
1348
1349                impl serde::de::Visitor<'_> for GeneratedVisitor {
1350                    type Value = GeneratedField;
1351
1352                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1353                        write!(formatter, "expected one of: {:?}", &FIELDS)
1354                    }
1355
1356                    #[allow(unused_variables)]
1357                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1358                    where
1359                        E: serde::de::Error,
1360                    {
1361                        match value {
1362                            "cardinality" => Ok(GeneratedField::Cardinality),
1363                            "ops" => Ok(GeneratedField::Ops),
1364                            "columns" => Ok(GeneratedField::Columns),
1365                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1366                        }
1367                    }
1368                }
1369                deserializer.deserialize_identifier(GeneratedVisitor)
1370            }
1371        }
1372        struct GeneratedVisitor;
1373        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1374            type Value = StreamChunk;
1375
1376            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1377                formatter.write_str("struct data.StreamChunk")
1378            }
1379
1380            fn visit_map<V>(self, mut map_: V) -> std::result::Result<StreamChunk, V::Error>
1381                where
1382                    V: serde::de::MapAccess<'de>,
1383            {
1384                let mut cardinality__ = None;
1385                let mut ops__ = None;
1386                let mut columns__ = None;
1387                while let Some(k) = map_.next_key()? {
1388                    match k {
1389                        GeneratedField::Cardinality => {
1390                            if cardinality__.is_some() {
1391                                return Err(serde::de::Error::duplicate_field("cardinality"));
1392                            }
1393                            cardinality__ = 
1394                                Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
1395                            ;
1396                        }
1397                        GeneratedField::Ops => {
1398                            if ops__.is_some() {
1399                                return Err(serde::de::Error::duplicate_field("ops"));
1400                            }
1401                            ops__ = Some(map_.next_value::<Vec<Op>>()?.into_iter().map(|x| x as i32).collect());
1402                        }
1403                        GeneratedField::Columns => {
1404                            if columns__.is_some() {
1405                                return Err(serde::de::Error::duplicate_field("columns"));
1406                            }
1407                            columns__ = Some(map_.next_value()?);
1408                        }
1409                    }
1410                }
1411                Ok(StreamChunk {
1412                    cardinality: cardinality__.unwrap_or_default(),
1413                    ops: ops__.unwrap_or_default(),
1414                    columns: columns__.unwrap_or_default(),
1415                })
1416            }
1417        }
1418        deserializer.deserialize_struct("data.StreamChunk", FIELDS, GeneratedVisitor)
1419    }
1420}
1421impl serde::Serialize for StructArrayData {
1422    #[allow(deprecated)]
1423    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1424    where
1425        S: serde::Serializer,
1426    {
1427        use serde::ser::SerializeStruct;
1428        let mut len = 0;
1429        if !self.children_array.is_empty() {
1430            len += 1;
1431        }
1432        if !self.children_type.is_empty() {
1433            len += 1;
1434        }
1435        let mut struct_ser = serializer.serialize_struct("data.StructArrayData", len)?;
1436        if !self.children_array.is_empty() {
1437            struct_ser.serialize_field("childrenArray", &self.children_array)?;
1438        }
1439        if !self.children_type.is_empty() {
1440            struct_ser.serialize_field("childrenType", &self.children_type)?;
1441        }
1442        struct_ser.end()
1443    }
1444}
1445impl<'de> serde::Deserialize<'de> for StructArrayData {
1446    #[allow(deprecated)]
1447    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1448    where
1449        D: serde::Deserializer<'de>,
1450    {
1451        const FIELDS: &[&str] = &[
1452            "children_array",
1453            "childrenArray",
1454            "children_type",
1455            "childrenType",
1456        ];
1457
1458        #[allow(clippy::enum_variant_names)]
1459        enum GeneratedField {
1460            ChildrenArray,
1461            ChildrenType,
1462        }
1463        impl<'de> serde::Deserialize<'de> for GeneratedField {
1464            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1465            where
1466                D: serde::Deserializer<'de>,
1467            {
1468                struct GeneratedVisitor;
1469
1470                impl serde::de::Visitor<'_> for GeneratedVisitor {
1471                    type Value = GeneratedField;
1472
1473                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1474                        write!(formatter, "expected one of: {:?}", &FIELDS)
1475                    }
1476
1477                    #[allow(unused_variables)]
1478                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1479                    where
1480                        E: serde::de::Error,
1481                    {
1482                        match value {
1483                            "childrenArray" | "children_array" => Ok(GeneratedField::ChildrenArray),
1484                            "childrenType" | "children_type" => Ok(GeneratedField::ChildrenType),
1485                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
1486                        }
1487                    }
1488                }
1489                deserializer.deserialize_identifier(GeneratedVisitor)
1490            }
1491        }
1492        struct GeneratedVisitor;
1493        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1494            type Value = StructArrayData;
1495
1496            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1497                formatter.write_str("struct data.StructArrayData")
1498            }
1499
1500            fn visit_map<V>(self, mut map_: V) -> std::result::Result<StructArrayData, V::Error>
1501                where
1502                    V: serde::de::MapAccess<'de>,
1503            {
1504                let mut children_array__ = None;
1505                let mut children_type__ = None;
1506                while let Some(k) = map_.next_key()? {
1507                    match k {
1508                        GeneratedField::ChildrenArray => {
1509                            if children_array__.is_some() {
1510                                return Err(serde::de::Error::duplicate_field("childrenArray"));
1511                            }
1512                            children_array__ = Some(map_.next_value()?);
1513                        }
1514                        GeneratedField::ChildrenType => {
1515                            if children_type__.is_some() {
1516                                return Err(serde::de::Error::duplicate_field("childrenType"));
1517                            }
1518                            children_type__ = Some(map_.next_value()?);
1519                        }
1520                    }
1521                }
1522                Ok(StructArrayData {
1523                    children_array: children_array__.unwrap_or_default(),
1524                    children_type: children_type__.unwrap_or_default(),
1525                })
1526            }
1527        }
1528        deserializer.deserialize_struct("data.StructArrayData", FIELDS, GeneratedVisitor)
1529    }
1530}
1531impl serde::Serialize for Terminate {
1532    #[allow(deprecated)]
1533    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
1534    where
1535        S: serde::Serializer,
1536    {
1537        use serde::ser::SerializeStruct;
1538        let len = 0;
1539        let struct_ser = serializer.serialize_struct("data.Terminate", len)?;
1540        struct_ser.end()
1541    }
1542}
1543impl<'de> serde::Deserialize<'de> for Terminate {
1544    #[allow(deprecated)]
1545    fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
1546    where
1547        D: serde::Deserializer<'de>,
1548    {
1549        const FIELDS: &[&str] = &[
1550        ];
1551
1552        #[allow(clippy::enum_variant_names)]
1553        enum GeneratedField {
1554        }
1555        impl<'de> serde::Deserialize<'de> for GeneratedField {
1556            fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
1557            where
1558                D: serde::Deserializer<'de>,
1559            {
1560                struct GeneratedVisitor;
1561
1562                impl serde::de::Visitor<'_> for GeneratedVisitor {
1563                    type Value = GeneratedField;
1564
1565                    fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1566                        write!(formatter, "expected one of: {:?}", &FIELDS)
1567                    }
1568
1569                    #[allow(unused_variables)]
1570                    fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
1571                    where
1572                        E: serde::de::Error,
1573                    {
1574                            Err(serde::de::Error::unknown_field(value, FIELDS))
1575                    }
1576                }
1577                deserializer.deserialize_identifier(GeneratedVisitor)
1578            }
1579        }
1580        struct GeneratedVisitor;
1581        impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
1582            type Value = Terminate;
1583
1584            fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1585                formatter.write_str("struct data.Terminate")
1586            }
1587
1588            fn visit_map<V>(self, mut map_: V) -> std::result::Result<Terminate, V::Error>
1589                where
1590                    V: serde::de::MapAccess<'de>,
1591            {
1592                while map_.next_key::<GeneratedField>()?.is_some() {
1593                    let _ = map_.next_value::<serde::de::IgnoredAny>()?;
1594                }
1595                Ok(Terminate {
1596                })
1597            }
1598        }
1599        deserializer.deserialize_struct("data.Terminate", FIELDS, GeneratedVisitor)
1600    }
1601}