Skip to main content

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