perspective_client/
proto.rs

1// This file is @generated by prost-build.
2/// Recoverable, user-readable error reporting from the engine.
3#[derive(serde::Serialize)]
4#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct ServerError {
7    #[prost(string, tag = "1")]
8    pub message: ::prost::alloc::string::String,
9    #[prost(enumeration = "StatusCode", tag = "2")]
10    pub status_code: i32,
11}
12#[derive(serde::Serialize)]
13#[allow(clippy::derive_partial_eq_without_eq)]
14#[derive(Clone, PartialEq, ::prost::Message)]
15pub struct Schema {
16    #[prost(message, repeated, tag = "1")]
17    pub schema: ::prost::alloc::vec::Vec<schema::KeyTypePair>,
18}
19/// Nested message and enum types in `Schema`.
20pub mod schema {
21    #[derive(serde::Serialize)]
22    #[allow(clippy::derive_partial_eq_without_eq)]
23    #[derive(Clone, PartialEq, ::prost::Message)]
24    pub struct KeyTypePair {
25        #[prost(string, tag = "1")]
26        pub name: ::prost::alloc::string::String,
27        #[prost(enumeration = "super::ColumnType", tag = "2")]
28        pub r#type: i32,
29    }
30}
31/// The data type constructors Perspective supports.
32#[derive(serde::Serialize)]
33#[allow(clippy::derive_partial_eq_without_eq)]
34#[derive(Clone, PartialEq, ::prost::Message)]
35pub struct MakeTableData {
36    #[prost(oneof = "make_table_data::Data", tags = "1, 2, 3, 4, 5, 6, 7")]
37    pub data: ::core::option::Option<make_table_data::Data>,
38}
39/// Nested message and enum types in `MakeTableData`.
40pub mod make_table_data {
41    #[derive(serde::Serialize)]
42    #[allow(clippy::derive_partial_eq_without_eq)]
43    #[derive(Clone, PartialEq, ::prost::Oneof)]
44    pub enum Data {
45        #[prost(message, tag = "1")]
46        FromSchema(super::Schema),
47        #[prost(string, tag = "2")]
48        FromCsv(::prost::alloc::string::String),
49        #[prost(bytes, tag = "3")]
50        #[serde(skip)]
51        FromArrow(::prost::alloc::vec::Vec<u8>),
52        #[prost(string, tag = "4")]
53        FromRows(::prost::alloc::string::String),
54        #[prost(string, tag = "5")]
55        FromCols(::prost::alloc::string::String),
56        #[prost(string, tag = "6")]
57        FromView(::prost::alloc::string::String),
58        #[prost(string, tag = "7")]
59        FromNdjson(::prost::alloc::string::String),
60    }
61}
62/// Filter type scalars - this is _not_ the same as a Columns scalar, as this
63/// value is used in the view config and must be JSON safe!
64#[derive(serde::Serialize)]
65#[allow(clippy::derive_partial_eq_without_eq)]
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct Scalar {
68    #[prost(oneof = "scalar::Scalar", tags = "1, 4, 6, 7")]
69    pub scalar: ::core::option::Option<scalar::Scalar>,
70}
71/// Nested message and enum types in `Scalar`.
72pub mod scalar {
73    #[derive(serde::Serialize)]
74    #[allow(clippy::derive_partial_eq_without_eq)]
75    #[derive(Clone, PartialEq, ::prost::Oneof)]
76    pub enum Scalar {
77        #[prost(bool, tag = "1")]
78        Bool(bool),
79        /// int64 date = 2; // TODO these are the wrong type
80        /// int64 datetime = 3;
81        #[prost(double, tag = "4")]
82        Float(f64),
83        /// int32 int = 5;
84        #[prost(string, tag = "6")]
85        String(::prost::alloc::string::String),
86        #[prost(enumeration = "::prost_types::NullValue", tag = "7")]
87        Null(i32),
88    }
89}
90/// Options for requresting a slice of data, starting with the rectangular
91/// viewport.
92#[derive(serde::Serialize)]
93#[allow(clippy::derive_partial_eq_without_eq)]
94#[derive(Clone, PartialEq, ::prost::Message)]
95pub struct ViewPort {
96    #[prost(uint32, optional, tag = "1")]
97    pub start_row: ::core::option::Option<u32>,
98    #[prost(uint32, optional, tag = "2")]
99    pub start_col: ::core::option::Option<u32>,
100    #[prost(uint32, optional, tag = "3")]
101    pub end_row: ::core::option::Option<u32>,
102    ///    optional bool id = 5;
103    ///    optional bool index = 3;
104    ///    optional bool formatted = 6;
105    ///    optional bool leaves_only = 7;
106    ///    optional bool compression = 3;
107    #[prost(uint32, optional, tag = "4")]
108    pub end_col: ::core::option::Option<u32>,
109}
110#[derive(serde::Serialize)]
111#[allow(clippy::derive_partial_eq_without_eq)]
112#[derive(Clone, PartialEq, ::prost::Message)]
113pub struct Request {
114    #[prost(uint32, tag = "1")]
115    pub msg_id: u32,
116    #[prost(string, tag = "2")]
117    pub entity_id: ::prost::alloc::string::String,
118    #[prost(
119        oneof = "request::ClientReq",
120        tags = "3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 36, 27, 28, 29, 30, 31, 32, 33, 34, 35"
121    )]
122    pub client_req: ::core::option::Option<request::ClientReq>,
123}
124/// Nested message and enum types in `Request`.
125pub mod request {
126    #[derive(serde::Serialize)]
127    #[allow(clippy::derive_partial_eq_without_eq)]
128    #[derive(Clone, PartialEq, ::prost::Oneof)]
129    pub enum ClientReq {
130        /// Minimum Virtual API (theoretical).
131        #[prost(message, tag = "3")]
132        GetFeaturesReq(super::GetFeaturesReq),
133        #[prost(message, tag = "4")]
134        GetHostedTablesReq(super::GetHostedTablesReq),
135        #[prost(message, tag = "5")]
136        TableMakePortReq(super::TableMakePortReq),
137        #[prost(message, tag = "6")]
138        TableMakeViewReq(super::TableMakeViewReq),
139        #[prost(message, tag = "7")]
140        TableSchemaReq(super::TableSchemaReq),
141        #[prost(message, tag = "8")]
142        TableSizeReq(super::TableSizeReq),
143        #[prost(message, tag = "9")]
144        TableValidateExprReq(super::TableValidateExprReq),
145        #[prost(message, tag = "10")]
146        ViewColumnPathsReq(super::ViewColumnPathsReq),
147        #[prost(message, tag = "11")]
148        ViewDeleteReq(super::ViewDeleteReq),
149        #[prost(message, tag = "12")]
150        ViewDimensionsReq(super::ViewDimensionsReq),
151        #[prost(message, tag = "13")]
152        ViewExpressionSchemaReq(super::ViewExpressionSchemaReq),
153        #[prost(message, tag = "14")]
154        ViewGetConfigReq(super::ViewGetConfigReq),
155        #[prost(message, tag = "15")]
156        ViewSchemaReq(super::ViewSchemaReq),
157        #[prost(message, tag = "16")]
158        ViewToArrowReq(super::ViewToArrowReq),
159        /// Optional (we can enable real-time/autocomplete/etc with these, but
160        /// not required).
161        #[prost(message, tag = "17")]
162        ServerSystemInfoReq(super::ServerSystemInfoReq),
163        #[prost(message, tag = "18")]
164        ViewCollapseReq(super::ViewCollapseReq),
165        #[prost(message, tag = "19")]
166        ViewExpandReq(super::ViewExpandReq),
167        #[prost(message, tag = "20")]
168        ViewGetMinMaxReq(super::ViewGetMinMaxReq),
169        #[prost(message, tag = "21")]
170        ViewOnUpdateReq(super::ViewOnUpdateReq),
171        #[prost(message, tag = "22")]
172        ViewRemoveOnUpdateReq(super::ViewRemoveOnUpdateReq),
173        #[prost(message, tag = "23")]
174        ViewSetDepthReq(super::ViewSetDepthReq),
175        #[prost(message, tag = "24")]
176        ViewToColumnsStringReq(super::ViewToColumnsStringReq),
177        #[prost(message, tag = "25")]
178        ViewToCsvReq(super::ViewToCsvReq),
179        #[prost(message, tag = "26")]
180        ViewToRowsStringReq(super::ViewToRowsStringReq),
181        #[prost(message, tag = "36")]
182        ViewToNdjsonStringReq(super::ViewToNdjsonStringReq),
183        /// External (we don't need these for viewer, but the developer may).
184        #[prost(message, tag = "27")]
185        MakeTableReq(super::MakeTableReq),
186        #[prost(message, tag = "28")]
187        TableDeleteReq(super::TableDeleteReq),
188        #[prost(message, tag = "29")]
189        TableOnDeleteReq(super::TableOnDeleteReq),
190        #[prost(message, tag = "30")]
191        TableRemoveDeleteReq(super::TableRemoveDeleteReq),
192        #[prost(message, tag = "31")]
193        TableRemoveReq(super::TableRemoveReq),
194        #[prost(message, tag = "32")]
195        TableReplaceReq(super::TableReplaceReq),
196        #[prost(message, tag = "33")]
197        TableUpdateReq(super::TableUpdateReq),
198        #[prost(message, tag = "34")]
199        ViewOnDeleteReq(super::ViewOnDeleteReq),
200        #[prost(message, tag = "35")]
201        ViewRemoveDeleteReq(super::ViewRemoveDeleteReq),
202    }
203}
204#[derive(serde::Serialize)]
205#[allow(clippy::derive_partial_eq_without_eq)]
206#[derive(Clone, PartialEq, ::prost::Message)]
207pub struct Response {
208    #[prost(uint32, tag = "1")]
209    pub msg_id: u32,
210    #[prost(string, tag = "2")]
211    pub entity_id: ::prost::alloc::string::String,
212    #[prost(
213        oneof = "response::ClientResp",
214        tags = "3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 36, 27, 28, 29, 30, 31, 32, 33, 34, 35, 50"
215    )]
216    pub client_resp: ::core::option::Option<response::ClientResp>,
217}
218/// Nested message and enum types in `Response`.
219pub mod response {
220    #[derive(serde::Serialize)]
221    #[allow(clippy::derive_partial_eq_without_eq)]
222    #[derive(Clone, PartialEq, ::prost::Oneof)]
223    pub enum ClientResp {
224        #[prost(message, tag = "3")]
225        GetFeaturesResp(super::GetFeaturesResp),
226        #[prost(message, tag = "4")]
227        GetHostedTablesResp(super::GetHostedTablesResp),
228        #[prost(message, tag = "5")]
229        TableMakePortResp(super::TableMakePortResp),
230        #[prost(message, tag = "6")]
231        TableMakeViewResp(super::TableMakeViewResp),
232        #[prost(message, tag = "7")]
233        TableSchemaResp(super::TableSchemaResp),
234        #[prost(message, tag = "8")]
235        TableSizeResp(super::TableSizeResp),
236        #[prost(message, tag = "9")]
237        TableValidateExprResp(super::TableValidateExprResp),
238        #[prost(message, tag = "10")]
239        ViewColumnPathsResp(super::ViewColumnPathsResp),
240        #[prost(message, tag = "11")]
241        ViewDeleteResp(super::ViewDeleteResp),
242        #[prost(message, tag = "12")]
243        ViewDimensionsResp(super::ViewDimensionsResp),
244        #[prost(message, tag = "13")]
245        ViewExpressionSchemaResp(super::ViewExpressionSchemaResp),
246        #[prost(message, tag = "14")]
247        ViewGetConfigResp(super::ViewGetConfigResp),
248        #[prost(message, tag = "15")]
249        ViewSchemaResp(super::ViewSchemaResp),
250        #[prost(message, tag = "16")]
251        ViewToArrowResp(super::ViewToArrowResp),
252        #[prost(message, tag = "17")]
253        ServerSystemInfoResp(super::ServerSystemInfoResp),
254        #[prost(message, tag = "18")]
255        ViewCollapseResp(super::ViewCollapseResp),
256        #[prost(message, tag = "19")]
257        ViewExpandResp(super::ViewExpandResp),
258        #[prost(message, tag = "20")]
259        ViewGetMinMaxResp(super::ViewGetMinMaxResp),
260        #[prost(message, tag = "21")]
261        ViewOnUpdateResp(super::ViewOnUpdateResp),
262        #[prost(message, tag = "22")]
263        ViewRemoveOnUpdateResp(super::ViewRemoveOnUpdateResp),
264        #[prost(message, tag = "23")]
265        ViewSetDepthResp(super::ViewSetDepthResp),
266        #[prost(message, tag = "24")]
267        ViewToColumnsStringResp(super::ViewToColumnsStringResp),
268        #[prost(message, tag = "25")]
269        ViewToCsvResp(super::ViewToCsvResp),
270        #[prost(message, tag = "26")]
271        ViewToRowsStringResp(super::ViewToRowsStringResp),
272        #[prost(message, tag = "36")]
273        ViewToNdjsonStringResp(super::ViewToNdjsonStringResp),
274        #[prost(message, tag = "27")]
275        MakeTableResp(super::MakeTableResp),
276        #[prost(message, tag = "28")]
277        TableDeleteResp(super::TableDeleteResp),
278        #[prost(message, tag = "29")]
279        TableOnDeleteResp(super::TableOnDeleteResp),
280        #[prost(message, tag = "30")]
281        TableRemoveDeleteResp(super::TableRemoveDeleteResp),
282        #[prost(message, tag = "31")]
283        TableRemoveResp(super::TableRemoveResp),
284        #[prost(message, tag = "32")]
285        TableReplaceResp(super::TableReplaceResp),
286        #[prost(message, tag = "33")]
287        TableUpdateResp(super::TableUpdateResp),
288        #[prost(message, tag = "34")]
289        ViewOnDeleteResp(super::ViewOnDeleteResp),
290        #[prost(message, tag = "35")]
291        ViewRemoveDeleteResp(super::ViewRemoveDeleteResp),
292        #[prost(message, tag = "50")]
293        ServerError(super::ServerError),
294    }
295}
296/// Informs the client of the feature set, e.g. what to expect in the
297/// `ViewConfig` message.
298#[derive(serde::Serialize)]
299#[allow(clippy::derive_partial_eq_without_eq)]
300#[derive(Clone, PartialEq, ::prost::Message)]
301pub struct GetFeaturesReq {}
302#[derive(serde::Serialize)]
303#[allow(clippy::derive_partial_eq_without_eq)]
304#[derive(Clone, PartialEq, ::prost::Message)]
305pub struct GetFeaturesResp {
306    #[prost(bool, tag = "1")]
307    pub group_by: bool,
308    #[prost(bool, tag = "2")]
309    pub split_by: bool,
310    #[prost(bool, tag = "3")]
311    pub expressions: bool,
312    #[prost(map = "uint32, message", tag = "4")]
313    pub filter_ops: ::std::collections::HashMap<
314        u32,
315        get_features_resp::ColumnTypeOptions,
316    >,
317}
318/// Nested message and enum types in `GetFeaturesResp`.
319pub mod get_features_resp {
320    #[derive(serde::Serialize)]
321    #[allow(clippy::derive_partial_eq_without_eq)]
322    #[derive(Clone, PartialEq, ::prost::Message)]
323    pub struct ColumnTypeOptions {
324        #[prost(string, repeated, tag = "1")]
325        pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
326    }
327}
328/// `Client::get_hosted_tables`
329#[derive(serde::Serialize)]
330#[allow(clippy::derive_partial_eq_without_eq)]
331#[derive(Clone, PartialEq, ::prost::Message)]
332pub struct GetHostedTablesReq {}
333#[derive(serde::Serialize)]
334#[allow(clippy::derive_partial_eq_without_eq)]
335#[derive(Clone, PartialEq, ::prost::Message)]
336pub struct GetHostedTablesResp {
337    #[prost(message, repeated, tag = "1")]
338    pub table_infos: ::prost::alloc::vec::Vec<HostedTable>,
339}
340#[derive(serde::Serialize)]
341#[allow(clippy::derive_partial_eq_without_eq)]
342#[derive(Clone, PartialEq, ::prost::Message)]
343pub struct HostedTable {
344    #[prost(string, tag = "1")]
345    pub entity_id: ::prost::alloc::string::String,
346    #[prost(string, optional, tag = "2")]
347    pub index: ::core::option::Option<::prost::alloc::string::String>,
348    #[prost(uint32, optional, tag = "3")]
349    pub limit: ::core::option::Option<u32>,
350}
351/// `Table::size`
352#[derive(serde::Serialize)]
353#[allow(clippy::derive_partial_eq_without_eq)]
354#[derive(Clone, PartialEq, ::prost::Message)]
355pub struct TableSizeReq {}
356#[derive(serde::Serialize)]
357#[allow(clippy::derive_partial_eq_without_eq)]
358#[derive(Clone, PartialEq, ::prost::Message)]
359pub struct TableSizeResp {
360    #[prost(uint32, tag = "2")]
361    pub size: u32,
362}
363/// `Table::schema`
364#[derive(serde::Serialize)]
365#[allow(clippy::derive_partial_eq_without_eq)]
366#[derive(Clone, PartialEq, ::prost::Message)]
367pub struct TableSchemaReq {}
368#[derive(serde::Serialize)]
369#[allow(clippy::derive_partial_eq_without_eq)]
370#[derive(Clone, PartialEq, ::prost::Message)]
371pub struct TableSchemaResp {
372    #[prost(message, optional, tag = "1")]
373    pub schema: ::core::option::Option<Schema>,
374}
375/// `Table::validate_expressions`
376/// TODO: This should be just `validate()`
377#[derive(serde::Serialize)]
378#[allow(clippy::derive_partial_eq_without_eq)]
379#[derive(Clone, PartialEq, ::prost::Message)]
380pub struct TableValidateExprReq {
381    #[prost(map = "string, string", tag = "1")]
382    pub column_to_expr: ::std::collections::HashMap<
383        ::prost::alloc::string::String,
384        ::prost::alloc::string::String,
385    >,
386}
387#[derive(serde::Serialize)]
388#[derive(serde::Deserialize)]
389#[allow(clippy::derive_partial_eq_without_eq)]
390#[derive(Clone, PartialEq, ::prost::Message)]
391pub struct TableValidateExprResp {
392    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
393    pub expression_schema: ::std::collections::HashMap<
394        ::prost::alloc::string::String,
395        i32,
396    >,
397    #[prost(map = "string, message", tag = "2")]
398    pub errors: ::std::collections::HashMap<
399        ::prost::alloc::string::String,
400        table_validate_expr_resp::ExprValidationError,
401    >,
402    #[prost(map = "string, string", tag = "3")]
403    pub expression_alias: ::std::collections::HashMap<
404        ::prost::alloc::string::String,
405        ::prost::alloc::string::String,
406    >,
407}
408/// Nested message and enum types in `TableValidateExprResp`.
409pub mod table_validate_expr_resp {
410    #[derive(serde::Serialize)]
411    #[derive(serde::Deserialize)]
412    #[allow(clippy::derive_partial_eq_without_eq)]
413    #[derive(Clone, PartialEq, ::prost::Message)]
414    pub struct ExprValidationError {
415        #[prost(string, tag = "1")]
416        pub error_message: ::prost::alloc::string::String,
417        #[prost(uint32, tag = "2")]
418        pub line: u32,
419        #[prost(uint32, tag = "3")]
420        pub column: u32,
421    }
422}
423/// `Table::view`
424#[derive(serde::Serialize)]
425#[allow(clippy::derive_partial_eq_without_eq)]
426#[derive(Clone, PartialEq, ::prost::Message)]
427pub struct TableMakeViewReq {
428    #[prost(string, tag = "1")]
429    pub view_id: ::prost::alloc::string::String,
430    #[prost(message, optional, tag = "2")]
431    pub config: ::core::option::Option<ViewConfig>,
432}
433#[derive(serde::Serialize)]
434#[allow(clippy::derive_partial_eq_without_eq)]
435#[derive(Clone, PartialEq, ::prost::Message)]
436pub struct TableMakeViewResp {
437    #[prost(string, tag = "1")]
438    pub view_id: ::prost::alloc::string::String,
439}
440/// `View::schema`
441#[derive(serde::Serialize)]
442#[allow(clippy::derive_partial_eq_without_eq)]
443#[derive(Clone, PartialEq, ::prost::Message)]
444pub struct ViewSchemaReq {}
445#[derive(serde::Serialize)]
446#[allow(clippy::derive_partial_eq_without_eq)]
447#[derive(Clone, PartialEq, ::prost::Message)]
448pub struct ViewSchemaResp {
449    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
450    pub schema: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
451}
452/// `View::dimensions`
453#[derive(serde::Serialize)]
454#[allow(clippy::derive_partial_eq_without_eq)]
455#[derive(Clone, PartialEq, ::prost::Message)]
456pub struct ViewDimensionsReq {}
457#[derive(serde::Serialize)]
458#[derive(serde::Deserialize)]
459#[allow(clippy::derive_partial_eq_without_eq)]
460#[derive(Clone, PartialEq, ::prost::Message)]
461pub struct ViewDimensionsResp {
462    #[prost(uint32, tag = "1")]
463    pub num_table_rows: u32,
464    #[prost(uint32, tag = "2")]
465    pub num_table_columns: u32,
466    #[prost(uint32, tag = "3")]
467    pub num_view_rows: u32,
468    #[prost(uint32, tag = "4")]
469    pub num_view_columns: u32,
470}
471/// `View::get_config`
472#[derive(serde::Serialize)]
473#[allow(clippy::derive_partial_eq_without_eq)]
474#[derive(Clone, PartialEq, ::prost::Message)]
475pub struct ViewGetConfigReq {}
476#[derive(serde::Serialize)]
477#[allow(clippy::derive_partial_eq_without_eq)]
478#[derive(Clone, PartialEq, ::prost::Message)]
479pub struct ViewGetConfigResp {
480    #[prost(message, optional, tag = "1")]
481    pub config: ::core::option::Option<ViewConfig>,
482}
483/// `Client::table`.
484#[derive(serde::Serialize)]
485#[allow(clippy::derive_partial_eq_without_eq)]
486#[derive(Clone, PartialEq, ::prost::Message)]
487pub struct MakeTableReq {
488    #[prost(message, optional, tag = "1")]
489    pub data: ::core::option::Option<MakeTableData>,
490    #[prost(message, optional, tag = "2")]
491    pub options: ::core::option::Option<make_table_req::MakeTableOptions>,
492}
493/// Nested message and enum types in `MakeTableReq`.
494pub mod make_table_req {
495    #[derive(serde::Serialize)]
496    #[allow(clippy::derive_partial_eq_without_eq)]
497    #[derive(Clone, PartialEq, ::prost::Message)]
498    pub struct MakeTableOptions {
499        #[prost(oneof = "make_table_options::MakeTableType", tags = "1, 2")]
500        pub make_table_type: ::core::option::Option<make_table_options::MakeTableType>,
501    }
502    /// Nested message and enum types in `MakeTableOptions`.
503    pub mod make_table_options {
504        #[derive(serde::Serialize)]
505        #[allow(clippy::derive_partial_eq_without_eq)]
506        #[derive(Clone, PartialEq, ::prost::Oneof)]
507        pub enum MakeTableType {
508            #[prost(string, tag = "1")]
509            MakeIndexTable(::prost::alloc::string::String),
510            #[prost(uint32, tag = "2")]
511            MakeLimitTable(u32),
512        }
513    }
514}
515#[derive(serde::Serialize)]
516#[allow(clippy::derive_partial_eq_without_eq)]
517#[derive(Clone, PartialEq, ::prost::Message)]
518pub struct MakeTableResp {}
519/// `Table::delete`
520#[derive(serde::Serialize)]
521#[allow(clippy::derive_partial_eq_without_eq)]
522#[derive(Clone, PartialEq, ::prost::Message)]
523pub struct TableDeleteReq {}
524#[derive(serde::Serialize)]
525#[allow(clippy::derive_partial_eq_without_eq)]
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct TableDeleteResp {}
528/// `Table::on_delete`
529#[derive(serde::Serialize)]
530#[allow(clippy::derive_partial_eq_without_eq)]
531#[derive(Clone, PartialEq, ::prost::Message)]
532pub struct TableOnDeleteReq {}
533#[derive(serde::Serialize)]
534#[allow(clippy::derive_partial_eq_without_eq)]
535#[derive(Clone, PartialEq, ::prost::Message)]
536pub struct TableOnDeleteResp {}
537/// `Table::make_port`
538#[derive(serde::Serialize)]
539#[allow(clippy::derive_partial_eq_without_eq)]
540#[derive(Clone, PartialEq, ::prost::Message)]
541pub struct TableMakePortReq {}
542#[derive(serde::Serialize)]
543#[allow(clippy::derive_partial_eq_without_eq)]
544#[derive(Clone, PartialEq, ::prost::Message)]
545pub struct TableMakePortResp {
546    #[prost(uint32, tag = "1")]
547    pub port_id: u32,
548}
549/// `Table::remove_delete`
550#[derive(serde::Serialize)]
551#[allow(clippy::derive_partial_eq_without_eq)]
552#[derive(Clone, PartialEq, ::prost::Message)]
553pub struct TableRemoveDeleteReq {
554    #[prost(uint32, tag = "1")]
555    pub id: u32,
556}
557#[derive(serde::Serialize)]
558#[allow(clippy::derive_partial_eq_without_eq)]
559#[derive(Clone, PartialEq, ::prost::Message)]
560pub struct TableRemoveDeleteResp {}
561/// `Table::update`
562#[derive(serde::Serialize)]
563#[allow(clippy::derive_partial_eq_without_eq)]
564#[derive(Clone, PartialEq, ::prost::Message)]
565pub struct TableUpdateReq {
566    #[prost(message, optional, tag = "1")]
567    pub data: ::core::option::Option<MakeTableData>,
568    #[prost(uint32, tag = "2")]
569    pub port_id: u32,
570}
571#[derive(serde::Serialize)]
572#[allow(clippy::derive_partial_eq_without_eq)]
573#[derive(Clone, PartialEq, ::prost::Message)]
574pub struct TableUpdateResp {}
575/// `Table::replace`
576#[derive(serde::Serialize)]
577#[allow(clippy::derive_partial_eq_without_eq)]
578#[derive(Clone, PartialEq, ::prost::Message)]
579pub struct TableReplaceReq {
580    #[prost(message, optional, tag = "1")]
581    pub data: ::core::option::Option<MakeTableData>,
582}
583#[derive(serde::Serialize)]
584#[allow(clippy::derive_partial_eq_without_eq)]
585#[derive(Clone, PartialEq, ::prost::Message)]
586pub struct TableReplaceResp {}
587/// `Table::remove`
588#[derive(serde::Serialize)]
589#[allow(clippy::derive_partial_eq_without_eq)]
590#[derive(Clone, PartialEq, ::prost::Message)]
591pub struct TableRemoveReq {
592    #[prost(message, optional, tag = "1")]
593    pub data: ::core::option::Option<MakeTableData>,
594}
595#[derive(serde::Serialize)]
596#[allow(clippy::derive_partial_eq_without_eq)]
597#[derive(Clone, PartialEq, ::prost::Message)]
598pub struct TableRemoveResp {}
599#[derive(serde::Serialize)]
600#[allow(clippy::derive_partial_eq_without_eq)]
601#[derive(Clone, PartialEq, ::prost::Message)]
602pub struct ViewOnUpdateReq {
603    #[prost(enumeration = "view_on_update_req::Mode", optional, tag = "1")]
604    pub mode: ::core::option::Option<i32>,
605}
606/// Nested message and enum types in `ViewOnUpdateReq`.
607pub mod view_on_update_req {
608    #[derive(serde::Serialize)]
609    #[derive(
610        Clone,
611        Copy,
612        Debug,
613        PartialEq,
614        Eq,
615        Hash,
616        PartialOrd,
617        Ord,
618        ::prost::Enumeration
619    )]
620    #[repr(i32)]
621    pub enum Mode {
622        Row = 0,
623    }
624    impl Mode {
625        /// String value of the enum field names used in the ProtoBuf definition.
626        ///
627        /// The values are not transformed in any way and thus are considered stable
628        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
629        pub fn as_str_name(&self) -> &'static str {
630            match self {
631                Mode::Row => "ROW",
632            }
633        }
634        /// Creates an enum from field names used in the ProtoBuf definition.
635        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
636            match value {
637                "ROW" => Some(Self::Row),
638                _ => None,
639            }
640        }
641    }
642}
643#[derive(ts_rs::TS)]
644#[derive(serde::Serialize)]
645#[allow(clippy::derive_partial_eq_without_eq)]
646#[derive(Clone, PartialEq, ::prost::Message)]
647pub struct ViewOnUpdateResp {
648    #[prost(bytes = "vec", optional, tag = "1")]
649    #[ts(as = "Vec::<u8>")]
650    #[serde(with = "serde_bytes")]
651    pub delta: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
652    #[prost(uint32, tag = "2")]
653    pub port_id: u32,
654}
655#[derive(serde::Serialize)]
656#[allow(clippy::derive_partial_eq_without_eq)]
657#[derive(Clone, PartialEq, ::prost::Message)]
658pub struct ViewOnDeleteReq {}
659#[derive(serde::Serialize)]
660#[allow(clippy::derive_partial_eq_without_eq)]
661#[derive(Clone, PartialEq, ::prost::Message)]
662pub struct ViewOnDeleteResp {}
663#[derive(serde::Serialize)]
664#[allow(clippy::derive_partial_eq_without_eq)]
665#[derive(Clone, PartialEq, ::prost::Message)]
666pub struct ViewRemoveDeleteReq {
667    #[prost(uint32, tag = "1")]
668    pub id: u32,
669}
670#[derive(serde::Serialize)]
671#[allow(clippy::derive_partial_eq_without_eq)]
672#[derive(Clone, PartialEq, ::prost::Message)]
673pub struct ViewRemoveDeleteResp {}
674#[derive(serde::Serialize)]
675#[allow(clippy::derive_partial_eq_without_eq)]
676#[derive(Clone, PartialEq, ::prost::Message)]
677pub struct ViewToColumnsStringReq {
678    #[prost(message, optional, tag = "1")]
679    pub viewport: ::core::option::Option<ViewPort>,
680    #[prost(bool, optional, tag = "2")]
681    pub id: ::core::option::Option<bool>,
682    #[prost(bool, optional, tag = "3")]
683    pub index: ::core::option::Option<bool>,
684    #[prost(bool, optional, tag = "4")]
685    pub formatted: ::core::option::Option<bool>,
686    #[prost(bool, optional, tag = "5")]
687    pub leaves_only: ::core::option::Option<bool>,
688}
689#[derive(serde::Serialize)]
690#[allow(clippy::derive_partial_eq_without_eq)]
691#[derive(Clone, PartialEq, ::prost::Message)]
692pub struct ViewToColumnsStringResp {
693    #[prost(string, tag = "1")]
694    pub json_string: ::prost::alloc::string::String,
695}
696#[derive(serde::Serialize)]
697#[allow(clippy::derive_partial_eq_without_eq)]
698#[derive(Clone, PartialEq, ::prost::Message)]
699pub struct ViewToRowsStringReq {
700    #[prost(message, optional, tag = "1")]
701    pub viewport: ::core::option::Option<ViewPort>,
702    #[prost(bool, optional, tag = "2")]
703    pub id: ::core::option::Option<bool>,
704    #[prost(bool, optional, tag = "3")]
705    pub index: ::core::option::Option<bool>,
706    #[prost(bool, optional, tag = "4")]
707    pub formatted: ::core::option::Option<bool>,
708    #[prost(bool, optional, tag = "5")]
709    pub leaves_only: ::core::option::Option<bool>,
710}
711#[derive(serde::Serialize)]
712#[allow(clippy::derive_partial_eq_without_eq)]
713#[derive(Clone, PartialEq, ::prost::Message)]
714pub struct ViewToRowsStringResp {
715    #[prost(string, tag = "1")]
716    pub json_string: ::prost::alloc::string::String,
717}
718#[derive(serde::Serialize)]
719#[allow(clippy::derive_partial_eq_without_eq)]
720#[derive(Clone, PartialEq, ::prost::Message)]
721pub struct ViewToNdjsonStringReq {
722    #[prost(message, optional, tag = "1")]
723    pub viewport: ::core::option::Option<ViewPort>,
724    #[prost(bool, optional, tag = "2")]
725    pub id: ::core::option::Option<bool>,
726    #[prost(bool, optional, tag = "3")]
727    pub index: ::core::option::Option<bool>,
728    #[prost(bool, optional, tag = "4")]
729    pub formatted: ::core::option::Option<bool>,
730    #[prost(bool, optional, tag = "5")]
731    pub leaves_only: ::core::option::Option<bool>,
732}
733#[derive(serde::Serialize)]
734#[allow(clippy::derive_partial_eq_without_eq)]
735#[derive(Clone, PartialEq, ::prost::Message)]
736pub struct ViewToNdjsonStringResp {
737    #[prost(string, tag = "1")]
738    pub ndjson_string: ::prost::alloc::string::String,
739}
740#[derive(serde::Serialize)]
741#[allow(clippy::derive_partial_eq_without_eq)]
742#[derive(Clone, PartialEq, ::prost::Message)]
743pub struct ViewToArrowReq {
744    #[prost(message, optional, tag = "1")]
745    pub viewport: ::core::option::Option<ViewPort>,
746    #[prost(string, optional, tag = "2")]
747    pub compression: ::core::option::Option<::prost::alloc::string::String>,
748}
749#[derive(serde::Serialize)]
750#[allow(clippy::derive_partial_eq_without_eq)]
751#[derive(Clone, PartialEq, ::prost::Message)]
752pub struct ViewToArrowResp {
753    #[prost(bytes = "vec", tag = "1")]
754    #[serde(skip)]
755    pub arrow: ::prost::alloc::vec::Vec<u8>,
756}
757#[derive(serde::Serialize)]
758#[allow(clippy::derive_partial_eq_without_eq)]
759#[derive(Clone, PartialEq, ::prost::Message)]
760pub struct ViewColumnPathsReq {}
761#[derive(serde::Serialize)]
762#[allow(clippy::derive_partial_eq_without_eq)]
763#[derive(Clone, PartialEq, ::prost::Message)]
764pub struct ViewColumnPathsResp {
765    /// repeated ColumnPath paths = 1;
766    #[prost(string, repeated, tag = "1")]
767    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
768}
769#[derive(serde::Serialize)]
770#[allow(clippy::derive_partial_eq_without_eq)]
771#[derive(Clone, PartialEq, ::prost::Message)]
772pub struct ViewDeleteReq {}
773#[derive(serde::Serialize)]
774#[allow(clippy::derive_partial_eq_without_eq)]
775#[derive(Clone, PartialEq, ::prost::Message)]
776pub struct ViewDeleteResp {}
777#[derive(serde::Serialize)]
778#[allow(clippy::derive_partial_eq_without_eq)]
779#[derive(Clone, PartialEq, ::prost::Message)]
780pub struct ViewGetMinMaxReq {
781    #[prost(string, tag = "1")]
782    pub column_name: ::prost::alloc::string::String,
783}
784#[derive(serde::Serialize)]
785#[allow(clippy::derive_partial_eq_without_eq)]
786#[derive(Clone, PartialEq, ::prost::Message)]
787pub struct ViewGetMinMaxResp {
788    #[prost(string, tag = "1")]
789    pub min: ::prost::alloc::string::String,
790    #[prost(string, tag = "2")]
791    pub max: ::prost::alloc::string::String,
792}
793#[derive(serde::Serialize)]
794#[allow(clippy::derive_partial_eq_without_eq)]
795#[derive(Clone, PartialEq, ::prost::Message)]
796pub struct ViewExpressionSchemaReq {}
797#[derive(serde::Serialize)]
798#[allow(clippy::derive_partial_eq_without_eq)]
799#[derive(Clone, PartialEq, ::prost::Message)]
800pub struct ViewExpressionSchemaResp {
801    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
802    pub schema: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
803}
804#[derive(serde::Serialize)]
805#[allow(clippy::derive_partial_eq_without_eq)]
806#[derive(Clone, PartialEq, ::prost::Message)]
807pub struct ViewToCsvReq {
808    #[prost(message, optional, tag = "1")]
809    pub viewport: ::core::option::Option<ViewPort>,
810}
811#[derive(serde::Serialize)]
812#[allow(clippy::derive_partial_eq_without_eq)]
813#[derive(Clone, PartialEq, ::prost::Message)]
814pub struct ViewToCsvResp {
815    #[prost(string, tag = "1")]
816    pub csv: ::prost::alloc::string::String,
817}
818#[derive(serde::Serialize)]
819#[allow(clippy::derive_partial_eq_without_eq)]
820#[derive(Clone, PartialEq, ::prost::Message)]
821pub struct ViewRemoveOnUpdateReq {
822    #[prost(uint32, tag = "1")]
823    pub id: u32,
824}
825#[derive(serde::Serialize)]
826#[allow(clippy::derive_partial_eq_without_eq)]
827#[derive(Clone, PartialEq, ::prost::Message)]
828pub struct ViewRemoveOnUpdateResp {}
829#[derive(serde::Serialize)]
830#[allow(clippy::derive_partial_eq_without_eq)]
831#[derive(Clone, PartialEq, ::prost::Message)]
832pub struct ViewCollapseReq {
833    #[prost(uint32, tag = "1")]
834    pub row_index: u32,
835}
836#[derive(serde::Serialize)]
837#[allow(clippy::derive_partial_eq_without_eq)]
838#[derive(Clone, PartialEq, ::prost::Message)]
839pub struct ViewCollapseResp {
840    #[prost(uint32, tag = "1")]
841    pub num_changed: u32,
842}
843#[derive(serde::Serialize)]
844#[allow(clippy::derive_partial_eq_without_eq)]
845#[derive(Clone, PartialEq, ::prost::Message)]
846pub struct ViewExpandReq {
847    #[prost(uint32, tag = "1")]
848    pub row_index: u32,
849}
850#[derive(serde::Serialize)]
851#[allow(clippy::derive_partial_eq_without_eq)]
852#[derive(Clone, PartialEq, ::prost::Message)]
853pub struct ViewExpandResp {
854    #[prost(uint32, tag = "1")]
855    pub num_changed: u32,
856}
857/// `View::set_depth`
858#[derive(serde::Serialize)]
859#[allow(clippy::derive_partial_eq_without_eq)]
860#[derive(Clone, PartialEq, ::prost::Message)]
861pub struct ViewSetDepthReq {
862    #[prost(uint32, tag = "1")]
863    pub depth: u32,
864}
865#[derive(serde::Serialize)]
866#[allow(clippy::derive_partial_eq_without_eq)]
867#[derive(Clone, PartialEq, ::prost::Message)]
868pub struct ViewSetDepthResp {}
869#[derive(serde::Serialize)]
870#[allow(clippy::derive_partial_eq_without_eq)]
871#[derive(Clone, PartialEq, ::prost::Message)]
872pub struct ServerSystemInfoReq {}
873#[derive(serde::Serialize)]
874#[allow(clippy::derive_partial_eq_without_eq)]
875#[derive(Clone, PartialEq, ::prost::Message)]
876pub struct ServerSystemInfoResp {
877    #[prost(double, tag = "1")]
878    pub heap_size: f64,
879}
880#[derive(serde::Serialize)]
881#[allow(clippy::derive_partial_eq_without_eq)]
882#[derive(Clone, PartialEq, ::prost::Message)]
883pub struct ViewConfig {
884    #[prost(string, repeated, tag = "1")]
885    pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
886    #[prost(string, repeated, tag = "2")]
887    pub split_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
888    #[prost(message, optional, tag = "3")]
889    pub columns: ::core::option::Option<ColumnsUpdate>,
890    #[prost(message, repeated, tag = "4")]
891    pub filter: ::prost::alloc::vec::Vec<view_config::Filter>,
892    #[prost(message, repeated, tag = "5")]
893    pub sort: ::prost::alloc::vec::Vec<view_config::Sort>,
894    #[prost(map = "string, string", tag = "6")]
895    pub expressions: ::std::collections::HashMap<
896        ::prost::alloc::string::String,
897        ::prost::alloc::string::String,
898    >,
899    #[prost(map = "string, message", tag = "7")]
900    pub aggregates: ::std::collections::HashMap<
901        ::prost::alloc::string::String,
902        view_config::AggList,
903    >,
904    #[prost(enumeration = "view_config::FilterReducer", tag = "8")]
905    pub filter_op: i32,
906    #[prost(uint32, optional, tag = "9")]
907    pub group_by_depth: ::core::option::Option<u32>,
908}
909/// Nested message and enum types in `ViewConfig`.
910pub mod view_config {
911    #[derive(serde::Serialize)]
912    #[allow(clippy::derive_partial_eq_without_eq)]
913    #[derive(Clone, PartialEq, ::prost::Message)]
914    pub struct AggList {
915        #[prost(string, repeated, tag = "1")]
916        pub aggregations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
917    }
918    #[derive(serde::Serialize)]
919    #[allow(clippy::derive_partial_eq_without_eq)]
920    #[derive(Clone, PartialEq, ::prost::Message)]
921    pub struct Sort {
922        #[prost(string, tag = "1")]
923        pub column: ::prost::alloc::string::String,
924        #[prost(enumeration = "super::SortOp", tag = "2")]
925        pub op: i32,
926    }
927    #[derive(serde::Serialize)]
928    #[allow(clippy::derive_partial_eq_without_eq)]
929    #[derive(Clone, PartialEq, ::prost::Message)]
930    pub struct Filter {
931        #[prost(string, tag = "1")]
932        pub column: ::prost::alloc::string::String,
933        #[prost(string, tag = "2")]
934        pub op: ::prost::alloc::string::String,
935        #[prost(message, repeated, tag = "3")]
936        pub value: ::prost::alloc::vec::Vec<super::Scalar>,
937    }
938    #[derive(serde::Serialize)]
939    #[derive(
940        Clone,
941        Copy,
942        Debug,
943        PartialEq,
944        Eq,
945        Hash,
946        PartialOrd,
947        Ord,
948        ::prost::Enumeration
949    )]
950    #[repr(i32)]
951    pub enum FilterReducer {
952        And = 0,
953        Or = 1,
954    }
955    impl FilterReducer {
956        /// String value of the enum field names used in the ProtoBuf definition.
957        ///
958        /// The values are not transformed in any way and thus are considered stable
959        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
960        pub fn as_str_name(&self) -> &'static str {
961            match self {
962                FilterReducer::And => "AND",
963                FilterReducer::Or => "OR",
964            }
965        }
966        /// Creates an enum from field names used in the ProtoBuf definition.
967        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
968            match value {
969                "AND" => Some(Self::And),
970                "OR" => Some(Self::Or),
971                _ => None,
972            }
973        }
974    }
975}
976#[derive(serde::Serialize)]
977#[allow(clippy::derive_partial_eq_without_eq)]
978#[derive(Clone, PartialEq, ::prost::Message)]
979pub struct ColumnsUpdate {
980    #[prost(oneof = "columns_update::OptColumns", tags = "1, 2")]
981    pub opt_columns: ::core::option::Option<columns_update::OptColumns>,
982}
983/// Nested message and enum types in `ColumnsUpdate`.
984pub mod columns_update {
985    #[derive(serde::Serialize)]
986    #[allow(clippy::derive_partial_eq_without_eq)]
987    #[derive(Clone, PartialEq, ::prost::Message)]
988    pub struct Columns {
989        #[prost(string, repeated, tag = "1")]
990        pub columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
991    }
992    #[derive(serde::Serialize)]
993    #[allow(clippy::derive_partial_eq_without_eq)]
994    #[derive(Clone, PartialEq, ::prost::Oneof)]
995    pub enum OptColumns {
996        #[prost(enumeration = "::prost_types::NullValue", tag = "1")]
997        DefaultColumns(i32),
998        #[prost(message, tag = "2")]
999        Columns(Columns),
1000    }
1001}
1002#[derive(serde::Serialize)]
1003#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1004#[repr(i32)]
1005pub enum StatusCode {
1006    ServerError = 0,
1007    ViewNotFound = 1,
1008}
1009impl StatusCode {
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            StatusCode::ServerError => "SERVER_ERROR",
1017            StatusCode::ViewNotFound => "VIEW_NOT_FOUND",
1018        }
1019    }
1020    /// Creates an enum from field names used in the ProtoBuf definition.
1021    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1022        match value {
1023            "SERVER_ERROR" => Some(Self::ServerError),
1024            "VIEW_NOT_FOUND" => Some(Self::ViewNotFound),
1025            _ => None,
1026        }
1027    }
1028}
1029/// View types
1030#[derive(serde::Serialize)]
1031#[derive(serde::Deserialize)]
1032#[serde(rename_all = "snake_case")]
1033#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1034#[repr(i32)]
1035pub enum ColumnType {
1036    String = 0,
1037    Date = 1,
1038    Datetime = 2,
1039    Integer = 3,
1040    Float = 4,
1041    Boolean = 5,
1042}
1043impl ColumnType {
1044    /// String value of the enum field names used in the ProtoBuf definition.
1045    ///
1046    /// The values are not transformed in any way and thus are considered stable
1047    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1048    pub fn as_str_name(&self) -> &'static str {
1049        match self {
1050            ColumnType::String => "STRING",
1051            ColumnType::Date => "DATE",
1052            ColumnType::Datetime => "DATETIME",
1053            ColumnType::Integer => "INTEGER",
1054            ColumnType::Float => "FLOAT",
1055            ColumnType::Boolean => "BOOLEAN",
1056        }
1057    }
1058    /// Creates an enum from field names used in the ProtoBuf definition.
1059    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1060        match value {
1061            "STRING" => Some(Self::String),
1062            "DATE" => Some(Self::Date),
1063            "DATETIME" => Some(Self::Datetime),
1064            "INTEGER" => Some(Self::Integer),
1065            "FLOAT" => Some(Self::Float),
1066            "BOOLEAN" => Some(Self::Boolean),
1067            _ => None,
1068        }
1069    }
1070}
1071/// TODO This belongs in features
1072#[derive(serde::Serialize)]
1073#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1074#[repr(i32)]
1075pub enum SortOp {
1076    SortNone = 0,
1077    SortAsc = 1,
1078    SortDesc = 2,
1079    SortColAsc = 3,
1080    SortColDesc = 4,
1081    SortAscAbs = 5,
1082    SortDescAbs = 6,
1083    SortColAscAbs = 7,
1084    SortColDescAbs = 8,
1085}
1086impl SortOp {
1087    /// String value of the enum field names used in the ProtoBuf definition.
1088    ///
1089    /// The values are not transformed in any way and thus are considered stable
1090    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1091    pub fn as_str_name(&self) -> &'static str {
1092        match self {
1093            SortOp::SortNone => "SORT_NONE",
1094            SortOp::SortAsc => "SORT_ASC",
1095            SortOp::SortDesc => "SORT_DESC",
1096            SortOp::SortColAsc => "SORT_COL_ASC",
1097            SortOp::SortColDesc => "SORT_COL_DESC",
1098            SortOp::SortAscAbs => "SORT_ASC_ABS",
1099            SortOp::SortDescAbs => "SORT_DESC_ABS",
1100            SortOp::SortColAscAbs => "SORT_COL_ASC_ABS",
1101            SortOp::SortColDescAbs => "SORT_COL_DESC_ABS",
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            "SORT_NONE" => Some(Self::SortNone),
1108            "SORT_ASC" => Some(Self::SortAsc),
1109            "SORT_DESC" => Some(Self::SortDesc),
1110            "SORT_COL_ASC" => Some(Self::SortColAsc),
1111            "SORT_COL_DESC" => Some(Self::SortColDesc),
1112            "SORT_ASC_ABS" => Some(Self::SortAscAbs),
1113            "SORT_DESC_ABS" => Some(Self::SortDescAbs),
1114            "SORT_COL_ASC_ABS" => Some(Self::SortColAscAbs),
1115            "SORT_COL_DESC_ABS" => Some(Self::SortColDescAbs),
1116            _ => None,
1117        }
1118    }
1119}