datafusion_proto_common/generated/
prost.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct ColumnRelation {
4    #[prost(string, tag = "1")]
5    pub relation: ::prost::alloc::string::String,
6}
7#[derive(Clone, PartialEq, ::prost::Message)]
8pub struct Column {
9    #[prost(string, tag = "1")]
10    pub name: ::prost::alloc::string::String,
11    #[prost(message, optional, tag = "2")]
12    pub relation: ::core::option::Option<ColumnRelation>,
13}
14#[derive(Clone, PartialEq, ::prost::Message)]
15pub struct DfField {
16    #[prost(message, optional, tag = "1")]
17    pub field: ::core::option::Option<Field>,
18    #[prost(message, optional, tag = "2")]
19    pub qualifier: ::core::option::Option<ColumnRelation>,
20}
21#[derive(Clone, PartialEq, ::prost::Message)]
22pub struct DfSchema {
23    #[prost(message, repeated, tag = "1")]
24    pub columns: ::prost::alloc::vec::Vec<DfField>,
25    #[prost(map = "string, string", tag = "2")]
26    pub metadata: ::std::collections::HashMap<
27        ::prost::alloc::string::String,
28        ::prost::alloc::string::String,
29    >,
30}
31#[derive(Clone, PartialEq, ::prost::Message)]
32pub struct CsvFormat {
33    #[prost(message, optional, tag = "5")]
34    pub options: ::core::option::Option<CsvOptions>,
35}
36#[derive(Clone, PartialEq, ::prost::Message)]
37pub struct ParquetFormat {
38    #[prost(message, optional, tag = "2")]
39    pub options: ::core::option::Option<TableParquetOptions>,
40}
41#[derive(Clone, Copy, PartialEq, ::prost::Message)]
42pub struct AvroFormat {}
43#[derive(Clone, Copy, PartialEq, ::prost::Message)]
44pub struct NdJsonFormat {
45    #[prost(message, optional, tag = "1")]
46    pub options: ::core::option::Option<JsonOptions>,
47}
48#[derive(Clone, PartialEq, ::prost::Message)]
49pub struct PrimaryKeyConstraint {
50    #[prost(uint64, repeated, tag = "1")]
51    pub indices: ::prost::alloc::vec::Vec<u64>,
52}
53#[derive(Clone, PartialEq, ::prost::Message)]
54pub struct UniqueConstraint {
55    #[prost(uint64, repeated, tag = "1")]
56    pub indices: ::prost::alloc::vec::Vec<u64>,
57}
58#[derive(Clone, PartialEq, ::prost::Message)]
59pub struct Constraint {
60    #[prost(oneof = "constraint::ConstraintMode", tags = "1, 2")]
61    pub constraint_mode: ::core::option::Option<constraint::ConstraintMode>,
62}
63/// Nested message and enum types in `Constraint`.
64pub mod constraint {
65    #[derive(Clone, PartialEq, ::prost::Oneof)]
66    pub enum ConstraintMode {
67        #[prost(message, tag = "1")]
68        PrimaryKey(super::PrimaryKeyConstraint),
69        #[prost(message, tag = "2")]
70        Unique(super::UniqueConstraint),
71    }
72}
73#[derive(Clone, PartialEq, ::prost::Message)]
74pub struct Constraints {
75    #[prost(message, repeated, tag = "1")]
76    pub constraints: ::prost::alloc::vec::Vec<Constraint>,
77}
78#[derive(Clone, Copy, PartialEq, ::prost::Message)]
79pub struct AvroOptions {}
80#[derive(Clone, Copy, PartialEq, ::prost::Message)]
81pub struct ArrowOptions {}
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct Schema {
84    #[prost(message, repeated, tag = "1")]
85    pub columns: ::prost::alloc::vec::Vec<Field>,
86    #[prost(map = "string, string", tag = "2")]
87    pub metadata: ::std::collections::HashMap<
88        ::prost::alloc::string::String,
89        ::prost::alloc::string::String,
90    >,
91}
92#[derive(Clone, PartialEq, ::prost::Message)]
93pub struct Field {
94    /// name of the field
95    #[prost(string, tag = "1")]
96    pub name: ::prost::alloc::string::String,
97    #[prost(message, optional, boxed, tag = "2")]
98    pub arrow_type: ::core::option::Option<::prost::alloc::boxed::Box<ArrowType>>,
99    #[prost(bool, tag = "3")]
100    pub nullable: bool,
101    /// for complex data types like structs, unions
102    #[prost(message, repeated, tag = "4")]
103    pub children: ::prost::alloc::vec::Vec<Field>,
104    #[prost(map = "string, string", tag = "5")]
105    pub metadata: ::std::collections::HashMap<
106        ::prost::alloc::string::String,
107        ::prost::alloc::string::String,
108    >,
109    #[prost(bool, tag = "6")]
110    pub dict_ordered: bool,
111}
112#[derive(Clone, PartialEq, ::prost::Message)]
113pub struct Timestamp {
114    #[prost(enumeration = "TimeUnit", tag = "1")]
115    pub time_unit: i32,
116    #[prost(string, tag = "2")]
117    pub timezone: ::prost::alloc::string::String,
118}
119#[derive(Clone, Copy, PartialEq, ::prost::Message)]
120pub struct Decimal {
121    #[prost(uint32, tag = "3")]
122    pub precision: u32,
123    #[prost(int32, tag = "4")]
124    pub scale: i32,
125}
126#[derive(Clone, Copy, PartialEq, ::prost::Message)]
127pub struct Decimal256Type {
128    #[prost(uint32, tag = "3")]
129    pub precision: u32,
130    #[prost(int32, tag = "4")]
131    pub scale: i32,
132}
133#[derive(Clone, PartialEq, ::prost::Message)]
134pub struct List {
135    #[prost(message, optional, boxed, tag = "1")]
136    pub field_type: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
137}
138#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct FixedSizeList {
140    #[prost(message, optional, boxed, tag = "1")]
141    pub field_type: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
142    #[prost(int32, tag = "2")]
143    pub list_size: i32,
144}
145#[derive(Clone, PartialEq, ::prost::Message)]
146pub struct Dictionary {
147    #[prost(message, optional, boxed, tag = "1")]
148    pub key: ::core::option::Option<::prost::alloc::boxed::Box<ArrowType>>,
149    #[prost(message, optional, boxed, tag = "2")]
150    pub value: ::core::option::Option<::prost::alloc::boxed::Box<ArrowType>>,
151}
152#[derive(Clone, PartialEq, ::prost::Message)]
153pub struct Struct {
154    #[prost(message, repeated, tag = "1")]
155    pub sub_field_types: ::prost::alloc::vec::Vec<Field>,
156}
157#[derive(Clone, PartialEq, ::prost::Message)]
158pub struct Map {
159    #[prost(message, optional, boxed, tag = "1")]
160    pub field_type: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
161    #[prost(bool, tag = "2")]
162    pub keys_sorted: bool,
163}
164#[derive(Clone, PartialEq, ::prost::Message)]
165pub struct Union {
166    #[prost(message, repeated, tag = "1")]
167    pub union_types: ::prost::alloc::vec::Vec<Field>,
168    #[prost(enumeration = "UnionMode", tag = "2")]
169    pub union_mode: i32,
170    #[prost(int32, repeated, tag = "3")]
171    pub type_ids: ::prost::alloc::vec::Vec<i32>,
172}
173/// Used for List/FixedSizeList/LargeList/Struct/Map
174#[derive(Clone, PartialEq, ::prost::Message)]
175pub struct ScalarNestedValue {
176    #[prost(bytes = "vec", tag = "1")]
177    pub ipc_message: ::prost::alloc::vec::Vec<u8>,
178    #[prost(bytes = "vec", tag = "2")]
179    pub arrow_data: ::prost::alloc::vec::Vec<u8>,
180    #[prost(message, optional, tag = "3")]
181    pub schema: ::core::option::Option<Schema>,
182    #[prost(message, repeated, tag = "4")]
183    pub dictionaries: ::prost::alloc::vec::Vec<scalar_nested_value::Dictionary>,
184}
185/// Nested message and enum types in `ScalarNestedValue`.
186pub mod scalar_nested_value {
187    #[derive(Clone, PartialEq, ::prost::Message)]
188    pub struct Dictionary {
189        #[prost(bytes = "vec", tag = "1")]
190        pub ipc_message: ::prost::alloc::vec::Vec<u8>,
191        #[prost(bytes = "vec", tag = "2")]
192        pub arrow_data: ::prost::alloc::vec::Vec<u8>,
193    }
194}
195#[derive(Clone, Copy, PartialEq, ::prost::Message)]
196pub struct ScalarTime32Value {
197    #[prost(oneof = "scalar_time32_value::Value", tags = "1, 2")]
198    pub value: ::core::option::Option<scalar_time32_value::Value>,
199}
200/// Nested message and enum types in `ScalarTime32Value`.
201pub mod scalar_time32_value {
202    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
203    pub enum Value {
204        #[prost(int32, tag = "1")]
205        Time32SecondValue(i32),
206        #[prost(int32, tag = "2")]
207        Time32MillisecondValue(i32),
208    }
209}
210#[derive(Clone, Copy, PartialEq, ::prost::Message)]
211pub struct ScalarTime64Value {
212    #[prost(oneof = "scalar_time64_value::Value", tags = "1, 2")]
213    pub value: ::core::option::Option<scalar_time64_value::Value>,
214}
215/// Nested message and enum types in `ScalarTime64Value`.
216pub mod scalar_time64_value {
217    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
218    pub enum Value {
219        #[prost(int64, tag = "1")]
220        Time64MicrosecondValue(i64),
221        #[prost(int64, tag = "2")]
222        Time64NanosecondValue(i64),
223    }
224}
225#[derive(Clone, PartialEq, ::prost::Message)]
226pub struct ScalarTimestampValue {
227    #[prost(string, tag = "5")]
228    pub timezone: ::prost::alloc::string::String,
229    #[prost(oneof = "scalar_timestamp_value::Value", tags = "1, 2, 3, 4")]
230    pub value: ::core::option::Option<scalar_timestamp_value::Value>,
231}
232/// Nested message and enum types in `ScalarTimestampValue`.
233pub mod scalar_timestamp_value {
234    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
235    pub enum Value {
236        #[prost(int64, tag = "1")]
237        TimeMicrosecondValue(i64),
238        #[prost(int64, tag = "2")]
239        TimeNanosecondValue(i64),
240        #[prost(int64, tag = "3")]
241        TimeSecondValue(i64),
242        #[prost(int64, tag = "4")]
243        TimeMillisecondValue(i64),
244    }
245}
246#[derive(Clone, PartialEq, ::prost::Message)]
247pub struct ScalarDictionaryValue {
248    #[prost(message, optional, tag = "1")]
249    pub index_type: ::core::option::Option<ArrowType>,
250    #[prost(message, optional, boxed, tag = "2")]
251    pub value: ::core::option::Option<::prost::alloc::boxed::Box<ScalarValue>>,
252}
253#[derive(Clone, Copy, PartialEq, ::prost::Message)]
254pub struct IntervalDayTimeValue {
255    #[prost(int32, tag = "1")]
256    pub days: i32,
257    #[prost(int32, tag = "2")]
258    pub milliseconds: i32,
259}
260#[derive(Clone, Copy, PartialEq, ::prost::Message)]
261pub struct IntervalMonthDayNanoValue {
262    #[prost(int32, tag = "1")]
263    pub months: i32,
264    #[prost(int32, tag = "2")]
265    pub days: i32,
266    #[prost(int64, tag = "3")]
267    pub nanos: i64,
268}
269#[derive(Clone, PartialEq, ::prost::Message)]
270pub struct UnionField {
271    #[prost(int32, tag = "1")]
272    pub field_id: i32,
273    #[prost(message, optional, tag = "2")]
274    pub field: ::core::option::Option<Field>,
275}
276#[derive(Clone, PartialEq, ::prost::Message)]
277pub struct UnionValue {
278    /// Note that a null union value must have one or more fields, so we
279    /// encode a null UnionValue as one with value_id == 128
280    #[prost(int32, tag = "1")]
281    pub value_id: i32,
282    #[prost(message, optional, boxed, tag = "2")]
283    pub value: ::core::option::Option<::prost::alloc::boxed::Box<ScalarValue>>,
284    #[prost(message, repeated, tag = "3")]
285    pub fields: ::prost::alloc::vec::Vec<UnionField>,
286    #[prost(enumeration = "UnionMode", tag = "4")]
287    pub mode: i32,
288}
289#[derive(Clone, PartialEq, ::prost::Message)]
290pub struct ScalarFixedSizeBinary {
291    #[prost(bytes = "vec", tag = "1")]
292    pub values: ::prost::alloc::vec::Vec<u8>,
293    #[prost(int32, tag = "2")]
294    pub length: i32,
295}
296#[derive(Clone, PartialEq, ::prost::Message)]
297pub struct ScalarValue {
298    #[prost(
299        oneof = "scalar_value::Value",
300        tags = "33, 1, 2, 3, 23, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 32, 41, 20, 39, 21, 24, 35, 36, 37, 38, 26, 27, 28, 29, 22, 30, 25, 31, 34, 42"
301    )]
302    pub value: ::core::option::Option<scalar_value::Value>,
303}
304/// Nested message and enum types in `ScalarValue`.
305pub mod scalar_value {
306    #[derive(Clone, PartialEq, ::prost::Oneof)]
307    pub enum Value {
308        /// was PrimitiveScalarType null_value = 19;
309        /// Null value of any type
310        #[prost(message, tag = "33")]
311        NullValue(super::ArrowType),
312        #[prost(bool, tag = "1")]
313        BoolValue(bool),
314        #[prost(string, tag = "2")]
315        Utf8Value(::prost::alloc::string::String),
316        #[prost(string, tag = "3")]
317        LargeUtf8Value(::prost::alloc::string::String),
318        #[prost(string, tag = "23")]
319        Utf8ViewValue(::prost::alloc::string::String),
320        #[prost(int32, tag = "4")]
321        Int8Value(i32),
322        #[prost(int32, tag = "5")]
323        Int16Value(i32),
324        #[prost(int32, tag = "6")]
325        Int32Value(i32),
326        #[prost(int64, tag = "7")]
327        Int64Value(i64),
328        #[prost(uint32, tag = "8")]
329        Uint8Value(u32),
330        #[prost(uint32, tag = "9")]
331        Uint16Value(u32),
332        #[prost(uint32, tag = "10")]
333        Uint32Value(u32),
334        #[prost(uint64, tag = "11")]
335        Uint64Value(u64),
336        #[prost(float, tag = "12")]
337        Float32Value(f32),
338        #[prost(double, tag = "13")]
339        Float64Value(f64),
340        /// Literal Date32 value always has a unit of day
341        #[prost(int32, tag = "14")]
342        Date32Value(i32),
343        #[prost(message, tag = "15")]
344        Time32Value(super::ScalarTime32Value),
345        #[prost(message, tag = "16")]
346        LargeListValue(super::ScalarNestedValue),
347        #[prost(message, tag = "17")]
348        ListValue(super::ScalarNestedValue),
349        #[prost(message, tag = "18")]
350        FixedSizeListValue(super::ScalarNestedValue),
351        #[prost(message, tag = "32")]
352        StructValue(super::ScalarNestedValue),
353        #[prost(message, tag = "41")]
354        MapValue(super::ScalarNestedValue),
355        #[prost(message, tag = "20")]
356        Decimal128Value(super::Decimal128),
357        #[prost(message, tag = "39")]
358        Decimal256Value(super::Decimal256),
359        #[prost(int64, tag = "21")]
360        Date64Value(i64),
361        #[prost(int32, tag = "24")]
362        IntervalYearmonthValue(i32),
363        #[prost(int64, tag = "35")]
364        DurationSecondValue(i64),
365        #[prost(int64, tag = "36")]
366        DurationMillisecondValue(i64),
367        #[prost(int64, tag = "37")]
368        DurationMicrosecondValue(i64),
369        #[prost(int64, tag = "38")]
370        DurationNanosecondValue(i64),
371        #[prost(message, tag = "26")]
372        TimestampValue(super::ScalarTimestampValue),
373        #[prost(message, tag = "27")]
374        DictionaryValue(::prost::alloc::boxed::Box<super::ScalarDictionaryValue>),
375        #[prost(bytes, tag = "28")]
376        BinaryValue(::prost::alloc::vec::Vec<u8>),
377        #[prost(bytes, tag = "29")]
378        LargeBinaryValue(::prost::alloc::vec::Vec<u8>),
379        #[prost(bytes, tag = "22")]
380        BinaryViewValue(::prost::alloc::vec::Vec<u8>),
381        #[prost(message, tag = "30")]
382        Time64Value(super::ScalarTime64Value),
383        #[prost(message, tag = "25")]
384        IntervalDaytimeValue(super::IntervalDayTimeValue),
385        #[prost(message, tag = "31")]
386        IntervalMonthDayNano(super::IntervalMonthDayNanoValue),
387        #[prost(message, tag = "34")]
388        FixedSizeBinaryValue(super::ScalarFixedSizeBinary),
389        #[prost(message, tag = "42")]
390        UnionValue(::prost::alloc::boxed::Box<super::UnionValue>),
391    }
392}
393#[derive(Clone, PartialEq, ::prost::Message)]
394pub struct Decimal128 {
395    #[prost(bytes = "vec", tag = "1")]
396    pub value: ::prost::alloc::vec::Vec<u8>,
397    #[prost(int64, tag = "2")]
398    pub p: i64,
399    #[prost(int64, tag = "3")]
400    pub s: i64,
401}
402#[derive(Clone, PartialEq, ::prost::Message)]
403pub struct Decimal256 {
404    #[prost(bytes = "vec", tag = "1")]
405    pub value: ::prost::alloc::vec::Vec<u8>,
406    #[prost(int64, tag = "2")]
407    pub p: i64,
408    #[prost(int64, tag = "3")]
409    pub s: i64,
410}
411/// Serialized data type
412#[derive(Clone, PartialEq, ::prost::Message)]
413pub struct ArrowType {
414    #[prost(
415        oneof = "arrow_type::ArrowTypeEnum",
416        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 35, 32, 15, 34, 16, 31, 17, 18, 19, 20, 21, 22, 23, 24, 36, 25, 26, 27, 28, 29, 30, 33"
417    )]
418    pub arrow_type_enum: ::core::option::Option<arrow_type::ArrowTypeEnum>,
419}
420/// Nested message and enum types in `ArrowType`.
421pub mod arrow_type {
422    #[derive(Clone, PartialEq, ::prost::Oneof)]
423    pub enum ArrowTypeEnum {
424        /// arrow::Type::NA
425        #[prost(message, tag = "1")]
426        None(super::EmptyMessage),
427        /// arrow::Type::BOOL
428        #[prost(message, tag = "2")]
429        Bool(super::EmptyMessage),
430        /// arrow::Type::UINT8
431        #[prost(message, tag = "3")]
432        Uint8(super::EmptyMessage),
433        /// arrow::Type::INT8
434        #[prost(message, tag = "4")]
435        Int8(super::EmptyMessage),
436        /// represents arrow::Type fields in src/arrow/type.h
437        #[prost(message, tag = "5")]
438        Uint16(super::EmptyMessage),
439        #[prost(message, tag = "6")]
440        Int16(super::EmptyMessage),
441        #[prost(message, tag = "7")]
442        Uint32(super::EmptyMessage),
443        #[prost(message, tag = "8")]
444        Int32(super::EmptyMessage),
445        #[prost(message, tag = "9")]
446        Uint64(super::EmptyMessage),
447        #[prost(message, tag = "10")]
448        Int64(super::EmptyMessage),
449        #[prost(message, tag = "11")]
450        Float16(super::EmptyMessage),
451        #[prost(message, tag = "12")]
452        Float32(super::EmptyMessage),
453        #[prost(message, tag = "13")]
454        Float64(super::EmptyMessage),
455        #[prost(message, tag = "14")]
456        Utf8(super::EmptyMessage),
457        #[prost(message, tag = "35")]
458        Utf8View(super::EmptyMessage),
459        #[prost(message, tag = "32")]
460        LargeUtf8(super::EmptyMessage),
461        #[prost(message, tag = "15")]
462        Binary(super::EmptyMessage),
463        #[prost(message, tag = "34")]
464        BinaryView(super::EmptyMessage),
465        #[prost(int32, tag = "16")]
466        FixedSizeBinary(i32),
467        #[prost(message, tag = "31")]
468        LargeBinary(super::EmptyMessage),
469        #[prost(message, tag = "17")]
470        Date32(super::EmptyMessage),
471        #[prost(message, tag = "18")]
472        Date64(super::EmptyMessage),
473        #[prost(enumeration = "super::TimeUnit", tag = "19")]
474        Duration(i32),
475        #[prost(message, tag = "20")]
476        Timestamp(super::Timestamp),
477        #[prost(enumeration = "super::TimeUnit", tag = "21")]
478        Time32(i32),
479        #[prost(enumeration = "super::TimeUnit", tag = "22")]
480        Time64(i32),
481        #[prost(enumeration = "super::IntervalUnit", tag = "23")]
482        Interval(i32),
483        #[prost(message, tag = "24")]
484        Decimal(super::Decimal),
485        #[prost(message, tag = "36")]
486        Decimal256(super::Decimal256Type),
487        #[prost(message, tag = "25")]
488        List(::prost::alloc::boxed::Box<super::List>),
489        #[prost(message, tag = "26")]
490        LargeList(::prost::alloc::boxed::Box<super::List>),
491        #[prost(message, tag = "27")]
492        FixedSizeList(::prost::alloc::boxed::Box<super::FixedSizeList>),
493        #[prost(message, tag = "28")]
494        Struct(super::Struct),
495        #[prost(message, tag = "29")]
496        Union(super::Union),
497        #[prost(message, tag = "30")]
498        Dictionary(::prost::alloc::boxed::Box<super::Dictionary>),
499        #[prost(message, tag = "33")]
500        Map(::prost::alloc::boxed::Box<super::Map>),
501    }
502}
503/// Useful for representing an empty enum variant in rust
504/// E.G. enum example{One, Two(i32)}
505/// maps to
506/// message example{
507///     oneof{
508///         EmptyMessage One = 1;
509///         i32 Two = 2;
510///    }
511/// }
512#[derive(Clone, Copy, PartialEq, ::prost::Message)]
513pub struct EmptyMessage {}
514#[derive(Clone, Copy, PartialEq, ::prost::Message)]
515pub struct JsonWriterOptions {
516    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
517    pub compression: i32,
518}
519#[derive(Clone, PartialEq, ::prost::Message)]
520pub struct CsvWriterOptions {
521    /// Compression type
522    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
523    pub compression: i32,
524    /// Optional column delimiter. Defaults to `b','`
525    #[prost(string, tag = "2")]
526    pub delimiter: ::prost::alloc::string::String,
527    /// Whether to write column names as file headers. Defaults to `true`
528    #[prost(bool, tag = "3")]
529    pub has_header: bool,
530    /// Optional date format for date arrays
531    #[prost(string, tag = "4")]
532    pub date_format: ::prost::alloc::string::String,
533    /// Optional datetime format for datetime arrays
534    #[prost(string, tag = "5")]
535    pub datetime_format: ::prost::alloc::string::String,
536    /// Optional timestamp format for timestamp arrays
537    #[prost(string, tag = "6")]
538    pub timestamp_format: ::prost::alloc::string::String,
539    /// Optional time format for time arrays
540    #[prost(string, tag = "7")]
541    pub time_format: ::prost::alloc::string::String,
542    /// Optional value to represent null
543    #[prost(string, tag = "8")]
544    pub null_value: ::prost::alloc::string::String,
545    /// Optional quote. Defaults to `b'"'`
546    #[prost(string, tag = "9")]
547    pub quote: ::prost::alloc::string::String,
548    /// Optional escape. Defaults to `'\\'`
549    #[prost(string, tag = "10")]
550    pub escape: ::prost::alloc::string::String,
551    /// Optional flag whether to double quotes, instead of escaping. Defaults to `true`
552    #[prost(bool, tag = "11")]
553    pub double_quote: bool,
554}
555/// Options controlling CSV format
556#[derive(Clone, PartialEq, ::prost::Message)]
557pub struct CsvOptions {
558    /// Indicates if the CSV has a header row
559    #[prost(bytes = "vec", tag = "1")]
560    pub has_header: ::prost::alloc::vec::Vec<u8>,
561    /// Delimiter character as a byte
562    #[prost(bytes = "vec", tag = "2")]
563    pub delimiter: ::prost::alloc::vec::Vec<u8>,
564    /// Quote character as a byte
565    #[prost(bytes = "vec", tag = "3")]
566    pub quote: ::prost::alloc::vec::Vec<u8>,
567    /// Optional escape character as a byte
568    #[prost(bytes = "vec", tag = "4")]
569    pub escape: ::prost::alloc::vec::Vec<u8>,
570    /// Compression type
571    #[prost(enumeration = "CompressionTypeVariant", tag = "5")]
572    pub compression: i32,
573    /// Optional max records for schema inference
574    #[prost(uint64, optional, tag = "6")]
575    pub schema_infer_max_rec: ::core::option::Option<u64>,
576    /// Optional date format
577    #[prost(string, tag = "7")]
578    pub date_format: ::prost::alloc::string::String,
579    /// Optional datetime format
580    #[prost(string, tag = "8")]
581    pub datetime_format: ::prost::alloc::string::String,
582    /// Optional timestamp format
583    #[prost(string, tag = "9")]
584    pub timestamp_format: ::prost::alloc::string::String,
585    /// Optional timestamp with timezone format
586    #[prost(string, tag = "10")]
587    pub timestamp_tz_format: ::prost::alloc::string::String,
588    /// Optional time format
589    #[prost(string, tag = "11")]
590    pub time_format: ::prost::alloc::string::String,
591    /// Optional representation of null value
592    #[prost(string, tag = "12")]
593    pub null_value: ::prost::alloc::string::String,
594    /// Optional representation of null loading regex
595    #[prost(string, tag = "13")]
596    pub null_regex: ::prost::alloc::string::String,
597    /// Optional comment character as a byte
598    #[prost(bytes = "vec", tag = "14")]
599    pub comment: ::prost::alloc::vec::Vec<u8>,
600    /// Indicates if quotes are doubled
601    #[prost(bytes = "vec", tag = "15")]
602    pub double_quote: ::prost::alloc::vec::Vec<u8>,
603    /// Indicates if newlines are supported in values
604    #[prost(bytes = "vec", tag = "16")]
605    pub newlines_in_values: ::prost::alloc::vec::Vec<u8>,
606    /// Optional terminator character as a byte
607    #[prost(bytes = "vec", tag = "17")]
608    pub terminator: ::prost::alloc::vec::Vec<u8>,
609}
610/// Options controlling CSV format
611#[derive(Clone, Copy, PartialEq, ::prost::Message)]
612pub struct JsonOptions {
613    /// Compression type
614    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
615    pub compression: i32,
616    /// Optional max records for schema inference
617    #[prost(uint64, optional, tag = "2")]
618    pub schema_infer_max_rec: ::core::option::Option<u64>,
619}
620#[derive(Clone, PartialEq, ::prost::Message)]
621pub struct TableParquetOptions {
622    #[prost(message, optional, tag = "1")]
623    pub global: ::core::option::Option<ParquetOptions>,
624    #[prost(message, repeated, tag = "2")]
625    pub column_specific_options: ::prost::alloc::vec::Vec<ParquetColumnSpecificOptions>,
626    #[prost(map = "string, string", tag = "3")]
627    pub key_value_metadata: ::std::collections::HashMap<
628        ::prost::alloc::string::String,
629        ::prost::alloc::string::String,
630    >,
631}
632#[derive(Clone, PartialEq, ::prost::Message)]
633pub struct ParquetColumnSpecificOptions {
634    #[prost(string, tag = "1")]
635    pub column_name: ::prost::alloc::string::String,
636    #[prost(message, optional, tag = "2")]
637    pub options: ::core::option::Option<ParquetColumnOptions>,
638}
639#[derive(Clone, PartialEq, ::prost::Message)]
640pub struct ParquetColumnOptions {
641    #[prost(oneof = "parquet_column_options::BloomFilterEnabledOpt", tags = "1")]
642    pub bloom_filter_enabled_opt: ::core::option::Option<
643        parquet_column_options::BloomFilterEnabledOpt,
644    >,
645    #[prost(oneof = "parquet_column_options::EncodingOpt", tags = "2")]
646    pub encoding_opt: ::core::option::Option<parquet_column_options::EncodingOpt>,
647    #[prost(oneof = "parquet_column_options::DictionaryEnabledOpt", tags = "3")]
648    pub dictionary_enabled_opt: ::core::option::Option<
649        parquet_column_options::DictionaryEnabledOpt,
650    >,
651    #[prost(oneof = "parquet_column_options::CompressionOpt", tags = "4")]
652    pub compression_opt: ::core::option::Option<parquet_column_options::CompressionOpt>,
653    #[prost(oneof = "parquet_column_options::StatisticsEnabledOpt", tags = "5")]
654    pub statistics_enabled_opt: ::core::option::Option<
655        parquet_column_options::StatisticsEnabledOpt,
656    >,
657    #[prost(oneof = "parquet_column_options::BloomFilterFppOpt", tags = "6")]
658    pub bloom_filter_fpp_opt: ::core::option::Option<
659        parquet_column_options::BloomFilterFppOpt,
660    >,
661    #[prost(oneof = "parquet_column_options::BloomFilterNdvOpt", tags = "7")]
662    pub bloom_filter_ndv_opt: ::core::option::Option<
663        parquet_column_options::BloomFilterNdvOpt,
664    >,
665    #[prost(oneof = "parquet_column_options::MaxStatisticsSizeOpt", tags = "8")]
666    pub max_statistics_size_opt: ::core::option::Option<
667        parquet_column_options::MaxStatisticsSizeOpt,
668    >,
669}
670/// Nested message and enum types in `ParquetColumnOptions`.
671pub mod parquet_column_options {
672    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
673    pub enum BloomFilterEnabledOpt {
674        #[prost(bool, tag = "1")]
675        BloomFilterEnabled(bool),
676    }
677    #[derive(Clone, PartialEq, ::prost::Oneof)]
678    pub enum EncodingOpt {
679        #[prost(string, tag = "2")]
680        Encoding(::prost::alloc::string::String),
681    }
682    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
683    pub enum DictionaryEnabledOpt {
684        #[prost(bool, tag = "3")]
685        DictionaryEnabled(bool),
686    }
687    #[derive(Clone, PartialEq, ::prost::Oneof)]
688    pub enum CompressionOpt {
689        #[prost(string, tag = "4")]
690        Compression(::prost::alloc::string::String),
691    }
692    #[derive(Clone, PartialEq, ::prost::Oneof)]
693    pub enum StatisticsEnabledOpt {
694        #[prost(string, tag = "5")]
695        StatisticsEnabled(::prost::alloc::string::String),
696    }
697    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
698    pub enum BloomFilterFppOpt {
699        #[prost(double, tag = "6")]
700        BloomFilterFpp(f64),
701    }
702    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
703    pub enum BloomFilterNdvOpt {
704        #[prost(uint64, tag = "7")]
705        BloomFilterNdv(u64),
706    }
707    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
708    pub enum MaxStatisticsSizeOpt {
709        #[prost(uint32, tag = "8")]
710        MaxStatisticsSize(u32),
711    }
712}
713#[derive(Clone, PartialEq, ::prost::Message)]
714pub struct ParquetOptions {
715    /// Regular fields
716    ///
717    /// default = true
718    #[prost(bool, tag = "1")]
719    pub enable_page_index: bool,
720    /// default = true
721    #[prost(bool, tag = "2")]
722    pub pruning: bool,
723    /// default = true
724    #[prost(bool, tag = "3")]
725    pub skip_metadata: bool,
726    /// default = false
727    #[prost(bool, tag = "5")]
728    pub pushdown_filters: bool,
729    /// default = false
730    #[prost(bool, tag = "6")]
731    pub reorder_filters: bool,
732    /// default = 1024 * 1024
733    #[prost(uint64, tag = "7")]
734    pub data_pagesize_limit: u64,
735    /// default = 1024
736    #[prost(uint64, tag = "8")]
737    pub write_batch_size: u64,
738    /// default = "1.0"
739    #[prost(string, tag = "9")]
740    pub writer_version: ::prost::alloc::string::String,
741    /// bool bloom_filter_enabled = 20; // default = false
742    ///
743    /// default = true
744    #[prost(bool, tag = "23")]
745    pub allow_single_file_parallelism: bool,
746    /// default = 1
747    #[prost(uint64, tag = "24")]
748    pub maximum_parallel_row_group_writers: u64,
749    /// default = 2
750    #[prost(uint64, tag = "25")]
751    pub maximum_buffered_record_batches_per_stream: u64,
752    /// default = true
753    #[prost(bool, tag = "26")]
754    pub bloom_filter_on_read: bool,
755    /// default = false
756    #[prost(bool, tag = "27")]
757    pub bloom_filter_on_write: bool,
758    /// default = false
759    #[prost(bool, tag = "28")]
760    pub schema_force_view_types: bool,
761    /// default = false
762    #[prost(bool, tag = "29")]
763    pub binary_as_string: bool,
764    /// default = false
765    #[prost(bool, tag = "30")]
766    pub skip_arrow_metadata: bool,
767    #[prost(uint64, tag = "12")]
768    pub dictionary_page_size_limit: u64,
769    #[prost(uint64, tag = "18")]
770    pub data_page_row_count_limit: u64,
771    #[prost(uint64, tag = "15")]
772    pub max_row_group_size: u64,
773    #[prost(string, tag = "16")]
774    pub created_by: ::prost::alloc::string::String,
775    #[prost(oneof = "parquet_options::MetadataSizeHintOpt", tags = "4")]
776    pub metadata_size_hint_opt: ::core::option::Option<
777        parquet_options::MetadataSizeHintOpt,
778    >,
779    #[prost(oneof = "parquet_options::CompressionOpt", tags = "10")]
780    pub compression_opt: ::core::option::Option<parquet_options::CompressionOpt>,
781    #[prost(oneof = "parquet_options::DictionaryEnabledOpt", tags = "11")]
782    pub dictionary_enabled_opt: ::core::option::Option<
783        parquet_options::DictionaryEnabledOpt,
784    >,
785    #[prost(oneof = "parquet_options::StatisticsEnabledOpt", tags = "13")]
786    pub statistics_enabled_opt: ::core::option::Option<
787        parquet_options::StatisticsEnabledOpt,
788    >,
789    #[prost(oneof = "parquet_options::MaxStatisticsSizeOpt", tags = "14")]
790    pub max_statistics_size_opt: ::core::option::Option<
791        parquet_options::MaxStatisticsSizeOpt,
792    >,
793    #[prost(oneof = "parquet_options::ColumnIndexTruncateLengthOpt", tags = "17")]
794    pub column_index_truncate_length_opt: ::core::option::Option<
795        parquet_options::ColumnIndexTruncateLengthOpt,
796    >,
797    #[prost(oneof = "parquet_options::StatisticsTruncateLengthOpt", tags = "31")]
798    pub statistics_truncate_length_opt: ::core::option::Option<
799        parquet_options::StatisticsTruncateLengthOpt,
800    >,
801    #[prost(oneof = "parquet_options::EncodingOpt", tags = "19")]
802    pub encoding_opt: ::core::option::Option<parquet_options::EncodingOpt>,
803    #[prost(oneof = "parquet_options::BloomFilterFppOpt", tags = "21")]
804    pub bloom_filter_fpp_opt: ::core::option::Option<parquet_options::BloomFilterFppOpt>,
805    #[prost(oneof = "parquet_options::BloomFilterNdvOpt", tags = "22")]
806    pub bloom_filter_ndv_opt: ::core::option::Option<parquet_options::BloomFilterNdvOpt>,
807    #[prost(oneof = "parquet_options::CoerceInt96Opt", tags = "32")]
808    pub coerce_int96_opt: ::core::option::Option<parquet_options::CoerceInt96Opt>,
809}
810/// Nested message and enum types in `ParquetOptions`.
811pub mod parquet_options {
812    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
813    pub enum MetadataSizeHintOpt {
814        #[prost(uint64, tag = "4")]
815        MetadataSizeHint(u64),
816    }
817    #[derive(Clone, PartialEq, ::prost::Oneof)]
818    pub enum CompressionOpt {
819        #[prost(string, tag = "10")]
820        Compression(::prost::alloc::string::String),
821    }
822    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
823    pub enum DictionaryEnabledOpt {
824        #[prost(bool, tag = "11")]
825        DictionaryEnabled(bool),
826    }
827    #[derive(Clone, PartialEq, ::prost::Oneof)]
828    pub enum StatisticsEnabledOpt {
829        #[prost(string, tag = "13")]
830        StatisticsEnabled(::prost::alloc::string::String),
831    }
832    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
833    pub enum MaxStatisticsSizeOpt {
834        #[prost(uint64, tag = "14")]
835        MaxStatisticsSize(u64),
836    }
837    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
838    pub enum ColumnIndexTruncateLengthOpt {
839        #[prost(uint64, tag = "17")]
840        ColumnIndexTruncateLength(u64),
841    }
842    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
843    pub enum StatisticsTruncateLengthOpt {
844        #[prost(uint64, tag = "31")]
845        StatisticsTruncateLength(u64),
846    }
847    #[derive(Clone, PartialEq, ::prost::Oneof)]
848    pub enum EncodingOpt {
849        #[prost(string, tag = "19")]
850        Encoding(::prost::alloc::string::String),
851    }
852    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
853    pub enum BloomFilterFppOpt {
854        #[prost(double, tag = "21")]
855        BloomFilterFpp(f64),
856    }
857    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
858    pub enum BloomFilterNdvOpt {
859        #[prost(uint64, tag = "22")]
860        BloomFilterNdv(u64),
861    }
862    #[derive(Clone, PartialEq, ::prost::Oneof)]
863    pub enum CoerceInt96Opt {
864        #[prost(string, tag = "32")]
865        CoerceInt96(::prost::alloc::string::String),
866    }
867}
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct Precision {
870    #[prost(enumeration = "PrecisionInfo", tag = "1")]
871    pub precision_info: i32,
872    #[prost(message, optional, tag = "2")]
873    pub val: ::core::option::Option<ScalarValue>,
874}
875#[derive(Clone, PartialEq, ::prost::Message)]
876pub struct Statistics {
877    #[prost(message, optional, tag = "1")]
878    pub num_rows: ::core::option::Option<Precision>,
879    #[prost(message, optional, tag = "2")]
880    pub total_byte_size: ::core::option::Option<Precision>,
881    #[prost(message, repeated, tag = "3")]
882    pub column_stats: ::prost::alloc::vec::Vec<ColumnStats>,
883}
884#[derive(Clone, PartialEq, ::prost::Message)]
885pub struct ColumnStats {
886    #[prost(message, optional, tag = "1")]
887    pub min_value: ::core::option::Option<Precision>,
888    #[prost(message, optional, tag = "2")]
889    pub max_value: ::core::option::Option<Precision>,
890    #[prost(message, optional, tag = "5")]
891    pub sum_value: ::core::option::Option<Precision>,
892    #[prost(message, optional, tag = "3")]
893    pub null_count: ::core::option::Option<Precision>,
894    #[prost(message, optional, tag = "4")]
895    pub distinct_count: ::core::option::Option<Precision>,
896}
897#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
898#[repr(i32)]
899pub enum JoinType {
900    Inner = 0,
901    Left = 1,
902    Right = 2,
903    Full = 3,
904    Leftsemi = 4,
905    Leftanti = 5,
906    Rightsemi = 6,
907    Rightanti = 7,
908    Leftmark = 8,
909}
910impl JoinType {
911    /// String value of the enum field names used in the ProtoBuf definition.
912    ///
913    /// The values are not transformed in any way and thus are considered stable
914    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
915    pub fn as_str_name(&self) -> &'static str {
916        match self {
917            Self::Inner => "INNER",
918            Self::Left => "LEFT",
919            Self::Right => "RIGHT",
920            Self::Full => "FULL",
921            Self::Leftsemi => "LEFTSEMI",
922            Self::Leftanti => "LEFTANTI",
923            Self::Rightsemi => "RIGHTSEMI",
924            Self::Rightanti => "RIGHTANTI",
925            Self::Leftmark => "LEFTMARK",
926        }
927    }
928    /// Creates an enum from field names used in the ProtoBuf definition.
929    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
930        match value {
931            "INNER" => Some(Self::Inner),
932            "LEFT" => Some(Self::Left),
933            "RIGHT" => Some(Self::Right),
934            "FULL" => Some(Self::Full),
935            "LEFTSEMI" => Some(Self::Leftsemi),
936            "LEFTANTI" => Some(Self::Leftanti),
937            "RIGHTSEMI" => Some(Self::Rightsemi),
938            "RIGHTANTI" => Some(Self::Rightanti),
939            "LEFTMARK" => Some(Self::Leftmark),
940            _ => None,
941        }
942    }
943}
944#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
945#[repr(i32)]
946pub enum JoinConstraint {
947    On = 0,
948    Using = 1,
949}
950impl JoinConstraint {
951    /// String value of the enum field names used in the ProtoBuf definition.
952    ///
953    /// The values are not transformed in any way and thus are considered stable
954    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
955    pub fn as_str_name(&self) -> &'static str {
956        match self {
957            Self::On => "ON",
958            Self::Using => "USING",
959        }
960    }
961    /// Creates an enum from field names used in the ProtoBuf definition.
962    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
963        match value {
964            "ON" => Some(Self::On),
965            "USING" => Some(Self::Using),
966            _ => None,
967        }
968    }
969}
970#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
971#[repr(i32)]
972pub enum TimeUnit {
973    Second = 0,
974    Millisecond = 1,
975    Microsecond = 2,
976    Nanosecond = 3,
977}
978impl TimeUnit {
979    /// String value of the enum field names used in the ProtoBuf definition.
980    ///
981    /// The values are not transformed in any way and thus are considered stable
982    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
983    pub fn as_str_name(&self) -> &'static str {
984        match self {
985            Self::Second => "Second",
986            Self::Millisecond => "Millisecond",
987            Self::Microsecond => "Microsecond",
988            Self::Nanosecond => "Nanosecond",
989        }
990    }
991    /// Creates an enum from field names used in the ProtoBuf definition.
992    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
993        match value {
994            "Second" => Some(Self::Second),
995            "Millisecond" => Some(Self::Millisecond),
996            "Microsecond" => Some(Self::Microsecond),
997            "Nanosecond" => Some(Self::Nanosecond),
998            _ => None,
999        }
1000    }
1001}
1002#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1003#[repr(i32)]
1004pub enum IntervalUnit {
1005    YearMonth = 0,
1006    DayTime = 1,
1007    MonthDayNano = 2,
1008}
1009impl IntervalUnit {
1010    /// String value of the enum field names used in the ProtoBuf definition.
1011    ///
1012    /// The values are not transformed in any way and thus are considered stable
1013    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1014    pub fn as_str_name(&self) -> &'static str {
1015        match self {
1016            Self::YearMonth => "YearMonth",
1017            Self::DayTime => "DayTime",
1018            Self::MonthDayNano => "MonthDayNano",
1019        }
1020    }
1021    /// Creates an enum from field names used in the ProtoBuf definition.
1022    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1023        match value {
1024            "YearMonth" => Some(Self::YearMonth),
1025            "DayTime" => Some(Self::DayTime),
1026            "MonthDayNano" => Some(Self::MonthDayNano),
1027            _ => None,
1028        }
1029    }
1030}
1031#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1032#[repr(i32)]
1033pub enum UnionMode {
1034    Sparse = 0,
1035    Dense = 1,
1036}
1037impl UnionMode {
1038    /// String value of the enum field names used in the ProtoBuf definition.
1039    ///
1040    /// The values are not transformed in any way and thus are considered stable
1041    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1042    pub fn as_str_name(&self) -> &'static str {
1043        match self {
1044            Self::Sparse => "sparse",
1045            Self::Dense => "dense",
1046        }
1047    }
1048    /// Creates an enum from field names used in the ProtoBuf definition.
1049    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1050        match value {
1051            "sparse" => Some(Self::Sparse),
1052            "dense" => Some(Self::Dense),
1053            _ => None,
1054        }
1055    }
1056}
1057#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1058#[repr(i32)]
1059pub enum CompressionTypeVariant {
1060    Gzip = 0,
1061    Bzip2 = 1,
1062    Xz = 2,
1063    Zstd = 3,
1064    Uncompressed = 4,
1065}
1066impl CompressionTypeVariant {
1067    /// String value of the enum field names used in the ProtoBuf definition.
1068    ///
1069    /// The values are not transformed in any way and thus are considered stable
1070    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1071    pub fn as_str_name(&self) -> &'static str {
1072        match self {
1073            Self::Gzip => "GZIP",
1074            Self::Bzip2 => "BZIP2",
1075            Self::Xz => "XZ",
1076            Self::Zstd => "ZSTD",
1077            Self::Uncompressed => "UNCOMPRESSED",
1078        }
1079    }
1080    /// Creates an enum from field names used in the ProtoBuf definition.
1081    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1082        match value {
1083            "GZIP" => Some(Self::Gzip),
1084            "BZIP2" => Some(Self::Bzip2),
1085            "XZ" => Some(Self::Xz),
1086            "ZSTD" => Some(Self::Zstd),
1087            "UNCOMPRESSED" => Some(Self::Uncompressed),
1088            _ => None,
1089        }
1090    }
1091}
1092#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1093#[repr(i32)]
1094pub enum JoinSide {
1095    LeftSide = 0,
1096    RightSide = 1,
1097    None = 2,
1098}
1099impl JoinSide {
1100    /// String value of the enum field names used in the ProtoBuf definition.
1101    ///
1102    /// The values are not transformed in any way and thus are considered stable
1103    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1104    pub fn as_str_name(&self) -> &'static str {
1105        match self {
1106            Self::LeftSide => "LEFT_SIDE",
1107            Self::RightSide => "RIGHT_SIDE",
1108            Self::None => "NONE",
1109        }
1110    }
1111    /// Creates an enum from field names used in the ProtoBuf definition.
1112    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1113        match value {
1114            "LEFT_SIDE" => Some(Self::LeftSide),
1115            "RIGHT_SIDE" => Some(Self::RightSide),
1116            "NONE" => Some(Self::None),
1117            _ => None,
1118        }
1119    }
1120}
1121#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1122#[repr(i32)]
1123pub enum PrecisionInfo {
1124    Exact = 0,
1125    Inexact = 1,
1126    Absent = 2,
1127}
1128impl PrecisionInfo {
1129    /// String value of the enum field names used in the ProtoBuf definition.
1130    ///
1131    /// The values are not transformed in any way and thus are considered stable
1132    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1133    pub fn as_str_name(&self) -> &'static str {
1134        match self {
1135            Self::Exact => "EXACT",
1136            Self::Inexact => "INEXACT",
1137            Self::Absent => "ABSENT",
1138        }
1139    }
1140    /// Creates an enum from field names used in the ProtoBuf definition.
1141    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1142        match value {
1143            "EXACT" => Some(Self::Exact),
1144            "INEXACT" => Some(Self::Inexact),
1145            "ABSENT" => Some(Self::Absent),
1146            _ => None,
1147        }
1148    }
1149}