datafusion_proto/generated/
datafusion_proto_common.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}
808/// Nested message and enum types in `ParquetOptions`.
809pub mod parquet_options {
810    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
811    pub enum MetadataSizeHintOpt {
812        #[prost(uint64, tag = "4")]
813        MetadataSizeHint(u64),
814    }
815    #[derive(Clone, PartialEq, ::prost::Oneof)]
816    pub enum CompressionOpt {
817        #[prost(string, tag = "10")]
818        Compression(::prost::alloc::string::String),
819    }
820    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
821    pub enum DictionaryEnabledOpt {
822        #[prost(bool, tag = "11")]
823        DictionaryEnabled(bool),
824    }
825    #[derive(Clone, PartialEq, ::prost::Oneof)]
826    pub enum StatisticsEnabledOpt {
827        #[prost(string, tag = "13")]
828        StatisticsEnabled(::prost::alloc::string::String),
829    }
830    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
831    pub enum MaxStatisticsSizeOpt {
832        #[prost(uint64, tag = "14")]
833        MaxStatisticsSize(u64),
834    }
835    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
836    pub enum ColumnIndexTruncateLengthOpt {
837        #[prost(uint64, tag = "17")]
838        ColumnIndexTruncateLength(u64),
839    }
840    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
841    pub enum StatisticsTruncateLengthOpt {
842        #[prost(uint64, tag = "31")]
843        StatisticsTruncateLength(u64),
844    }
845    #[derive(Clone, PartialEq, ::prost::Oneof)]
846    pub enum EncodingOpt {
847        #[prost(string, tag = "19")]
848        Encoding(::prost::alloc::string::String),
849    }
850    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
851    pub enum BloomFilterFppOpt {
852        #[prost(double, tag = "21")]
853        BloomFilterFpp(f64),
854    }
855    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
856    pub enum BloomFilterNdvOpt {
857        #[prost(uint64, tag = "22")]
858        BloomFilterNdv(u64),
859    }
860}
861#[derive(Clone, PartialEq, ::prost::Message)]
862pub struct Precision {
863    #[prost(enumeration = "PrecisionInfo", tag = "1")]
864    pub precision_info: i32,
865    #[prost(message, optional, tag = "2")]
866    pub val: ::core::option::Option<ScalarValue>,
867}
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct Statistics {
870    #[prost(message, optional, tag = "1")]
871    pub num_rows: ::core::option::Option<Precision>,
872    #[prost(message, optional, tag = "2")]
873    pub total_byte_size: ::core::option::Option<Precision>,
874    #[prost(message, repeated, tag = "3")]
875    pub column_stats: ::prost::alloc::vec::Vec<ColumnStats>,
876}
877#[derive(Clone, PartialEq, ::prost::Message)]
878pub struct ColumnStats {
879    #[prost(message, optional, tag = "1")]
880    pub min_value: ::core::option::Option<Precision>,
881    #[prost(message, optional, tag = "2")]
882    pub max_value: ::core::option::Option<Precision>,
883    #[prost(message, optional, tag = "5")]
884    pub sum_value: ::core::option::Option<Precision>,
885    #[prost(message, optional, tag = "3")]
886    pub null_count: ::core::option::Option<Precision>,
887    #[prost(message, optional, tag = "4")]
888    pub distinct_count: ::core::option::Option<Precision>,
889}
890#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
891#[repr(i32)]
892pub enum JoinType {
893    Inner = 0,
894    Left = 1,
895    Right = 2,
896    Full = 3,
897    Leftsemi = 4,
898    Leftanti = 5,
899    Rightsemi = 6,
900    Rightanti = 7,
901    Leftmark = 8,
902}
903impl JoinType {
904    /// String value of the enum field names used in the ProtoBuf definition.
905    ///
906    /// The values are not transformed in any way and thus are considered stable
907    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
908    pub fn as_str_name(&self) -> &'static str {
909        match self {
910            Self::Inner => "INNER",
911            Self::Left => "LEFT",
912            Self::Right => "RIGHT",
913            Self::Full => "FULL",
914            Self::Leftsemi => "LEFTSEMI",
915            Self::Leftanti => "LEFTANTI",
916            Self::Rightsemi => "RIGHTSEMI",
917            Self::Rightanti => "RIGHTANTI",
918            Self::Leftmark => "LEFTMARK",
919        }
920    }
921    /// Creates an enum from field names used in the ProtoBuf definition.
922    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
923        match value {
924            "INNER" => Some(Self::Inner),
925            "LEFT" => Some(Self::Left),
926            "RIGHT" => Some(Self::Right),
927            "FULL" => Some(Self::Full),
928            "LEFTSEMI" => Some(Self::Leftsemi),
929            "LEFTANTI" => Some(Self::Leftanti),
930            "RIGHTSEMI" => Some(Self::Rightsemi),
931            "RIGHTANTI" => Some(Self::Rightanti),
932            "LEFTMARK" => Some(Self::Leftmark),
933            _ => None,
934        }
935    }
936}
937#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
938#[repr(i32)]
939pub enum JoinConstraint {
940    On = 0,
941    Using = 1,
942}
943impl JoinConstraint {
944    /// String value of the enum field names used in the ProtoBuf definition.
945    ///
946    /// The values are not transformed in any way and thus are considered stable
947    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
948    pub fn as_str_name(&self) -> &'static str {
949        match self {
950            Self::On => "ON",
951            Self::Using => "USING",
952        }
953    }
954    /// Creates an enum from field names used in the ProtoBuf definition.
955    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
956        match value {
957            "ON" => Some(Self::On),
958            "USING" => Some(Self::Using),
959            _ => None,
960        }
961    }
962}
963#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
964#[repr(i32)]
965pub enum TimeUnit {
966    Second = 0,
967    Millisecond = 1,
968    Microsecond = 2,
969    Nanosecond = 3,
970}
971impl TimeUnit {
972    /// String value of the enum field names used in the ProtoBuf definition.
973    ///
974    /// The values are not transformed in any way and thus are considered stable
975    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
976    pub fn as_str_name(&self) -> &'static str {
977        match self {
978            Self::Second => "Second",
979            Self::Millisecond => "Millisecond",
980            Self::Microsecond => "Microsecond",
981            Self::Nanosecond => "Nanosecond",
982        }
983    }
984    /// Creates an enum from field names used in the ProtoBuf definition.
985    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
986        match value {
987            "Second" => Some(Self::Second),
988            "Millisecond" => Some(Self::Millisecond),
989            "Microsecond" => Some(Self::Microsecond),
990            "Nanosecond" => Some(Self::Nanosecond),
991            _ => None,
992        }
993    }
994}
995#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
996#[repr(i32)]
997pub enum IntervalUnit {
998    YearMonth = 0,
999    DayTime = 1,
1000    MonthDayNano = 2,
1001}
1002impl IntervalUnit {
1003    /// String value of the enum field names used in the ProtoBuf definition.
1004    ///
1005    /// The values are not transformed in any way and thus are considered stable
1006    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1007    pub fn as_str_name(&self) -> &'static str {
1008        match self {
1009            Self::YearMonth => "YearMonth",
1010            Self::DayTime => "DayTime",
1011            Self::MonthDayNano => "MonthDayNano",
1012        }
1013    }
1014    /// Creates an enum from field names used in the ProtoBuf definition.
1015    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1016        match value {
1017            "YearMonth" => Some(Self::YearMonth),
1018            "DayTime" => Some(Self::DayTime),
1019            "MonthDayNano" => Some(Self::MonthDayNano),
1020            _ => None,
1021        }
1022    }
1023}
1024#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1025#[repr(i32)]
1026pub enum UnionMode {
1027    Sparse = 0,
1028    Dense = 1,
1029}
1030impl UnionMode {
1031    /// String value of the enum field names used in the ProtoBuf definition.
1032    ///
1033    /// The values are not transformed in any way and thus are considered stable
1034    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1035    pub fn as_str_name(&self) -> &'static str {
1036        match self {
1037            Self::Sparse => "sparse",
1038            Self::Dense => "dense",
1039        }
1040    }
1041    /// Creates an enum from field names used in the ProtoBuf definition.
1042    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1043        match value {
1044            "sparse" => Some(Self::Sparse),
1045            "dense" => Some(Self::Dense),
1046            _ => None,
1047        }
1048    }
1049}
1050#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1051#[repr(i32)]
1052pub enum CompressionTypeVariant {
1053    Gzip = 0,
1054    Bzip2 = 1,
1055    Xz = 2,
1056    Zstd = 3,
1057    Uncompressed = 4,
1058}
1059impl CompressionTypeVariant {
1060    /// String value of the enum field names used in the ProtoBuf definition.
1061    ///
1062    /// The values are not transformed in any way and thus are considered stable
1063    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1064    pub fn as_str_name(&self) -> &'static str {
1065        match self {
1066            Self::Gzip => "GZIP",
1067            Self::Bzip2 => "BZIP2",
1068            Self::Xz => "XZ",
1069            Self::Zstd => "ZSTD",
1070            Self::Uncompressed => "UNCOMPRESSED",
1071        }
1072    }
1073    /// Creates an enum from field names used in the ProtoBuf definition.
1074    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1075        match value {
1076            "GZIP" => Some(Self::Gzip),
1077            "BZIP2" => Some(Self::Bzip2),
1078            "XZ" => Some(Self::Xz),
1079            "ZSTD" => Some(Self::Zstd),
1080            "UNCOMPRESSED" => Some(Self::Uncompressed),
1081            _ => None,
1082        }
1083    }
1084}
1085#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1086#[repr(i32)]
1087pub enum JoinSide {
1088    LeftSide = 0,
1089    RightSide = 1,
1090    None = 2,
1091}
1092impl JoinSide {
1093    /// String value of the enum field names used in the ProtoBuf definition.
1094    ///
1095    /// The values are not transformed in any way and thus are considered stable
1096    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1097    pub fn as_str_name(&self) -> &'static str {
1098        match self {
1099            Self::LeftSide => "LEFT_SIDE",
1100            Self::RightSide => "RIGHT_SIDE",
1101            Self::None => "NONE",
1102        }
1103    }
1104    /// Creates an enum from field names used in the ProtoBuf definition.
1105    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1106        match value {
1107            "LEFT_SIDE" => Some(Self::LeftSide),
1108            "RIGHT_SIDE" => Some(Self::RightSide),
1109            "NONE" => Some(Self::None),
1110            _ => None,
1111        }
1112    }
1113}
1114#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1115#[repr(i32)]
1116pub enum PrecisionInfo {
1117    Exact = 0,
1118    Inexact = 1,
1119    Absent = 2,
1120}
1121impl PrecisionInfo {
1122    /// String value of the enum field names used in the ProtoBuf definition.
1123    ///
1124    /// The values are not transformed in any way and thus are considered stable
1125    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1126    pub fn as_str_name(&self) -> &'static str {
1127        match self {
1128            Self::Exact => "EXACT",
1129            Self::Inexact => "INEXACT",
1130            Self::Absent => "ABSENT",
1131        }
1132    }
1133    /// Creates an enum from field names used in the ProtoBuf definition.
1134    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1135        match value {
1136            "EXACT" => Some(Self::Exact),
1137            "INEXACT" => Some(Self::Inexact),
1138            "ABSENT" => Some(Self::Absent),
1139            _ => None,
1140        }
1141    }
1142}