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    #[prost(enumeration = "GroupRollupMode", repeated, tag = "8")]
332    pub group_rollup_mode: ::prost::alloc::vec::Vec<i32>,
333}
334/// Nested message and enum types in `GetFeaturesResp`.
335pub mod get_features_resp {
336    #[derive(serde::Serialize)]
337    #[allow(clippy::derive_partial_eq_without_eq)]
338    #[derive(Clone, PartialEq, ::prost::Message)]
339    pub struct ColumnTypeOptions {
340        #[prost(string, repeated, tag = "1")]
341        pub options: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
342    }
343    #[derive(serde::Serialize)]
344    #[allow(clippy::derive_partial_eq_without_eq)]
345    #[derive(Clone, PartialEq, ::prost::Message)]
346    pub struct AggregateOptions {
347        #[prost(message, repeated, tag = "1")]
348        pub aggregates: ::prost::alloc::vec::Vec<AggregateArgs>,
349    }
350    #[derive(serde::Serialize)]
351    #[allow(clippy::derive_partial_eq_without_eq)]
352    #[derive(Clone, PartialEq, ::prost::Message)]
353    pub struct AggregateArgs {
354        #[prost(string, tag = "1")]
355        pub name: ::prost::alloc::string::String,
356        #[prost(enumeration = "super::ColumnType", repeated, tag = "2")]
357        pub args: ::prost::alloc::vec::Vec<i32>,
358    }
359}
360/// `Client::get_hosted_tables`
361#[derive(serde::Serialize)]
362#[allow(clippy::derive_partial_eq_without_eq)]
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct GetHostedTablesReq {
365    #[prost(bool, tag = "1")]
366    pub subscribe: bool,
367}
368#[derive(serde::Serialize)]
369#[allow(clippy::derive_partial_eq_without_eq)]
370#[derive(Clone, PartialEq, ::prost::Message)]
371pub struct GetHostedTablesResp {
372    #[prost(message, repeated, tag = "1")]
373    pub table_infos: ::prost::alloc::vec::Vec<HostedTable>,
374}
375#[derive(serde::Serialize)]
376#[allow(clippy::derive_partial_eq_without_eq)]
377#[derive(Clone, PartialEq, ::prost::Message)]
378pub struct HostedTable {
379    #[prost(string, tag = "1")]
380    pub entity_id: ::prost::alloc::string::String,
381    #[prost(string, optional, tag = "2")]
382    pub index: ::core::option::Option<::prost::alloc::string::String>,
383    #[prost(uint32, optional, tag = "3")]
384    pub limit: ::core::option::Option<u32>,
385}
386#[derive(serde::Serialize)]
387#[allow(clippy::derive_partial_eq_without_eq)]
388#[derive(Clone, PartialEq, ::prost::Message)]
389pub struct RemoveHostedTablesUpdateReq {
390    #[prost(uint32, tag = "1")]
391    pub id: u32,
392}
393#[derive(serde::Serialize)]
394#[allow(clippy::derive_partial_eq_without_eq)]
395#[derive(Clone, PartialEq, ::prost::Message)]
396pub struct RemoveHostedTablesUpdateResp {}
397/// `Table::size`
398#[derive(serde::Serialize)]
399#[allow(clippy::derive_partial_eq_without_eq)]
400#[derive(Clone, PartialEq, ::prost::Message)]
401pub struct TableSizeReq {}
402#[derive(serde::Serialize)]
403#[allow(clippy::derive_partial_eq_without_eq)]
404#[derive(Clone, PartialEq, ::prost::Message)]
405pub struct TableSizeResp {
406    #[prost(uint32, tag = "2")]
407    pub size: u32,
408}
409/// `Table::schema`
410#[derive(serde::Serialize)]
411#[allow(clippy::derive_partial_eq_without_eq)]
412#[derive(Clone, PartialEq, ::prost::Message)]
413pub struct TableSchemaReq {}
414#[derive(serde::Serialize)]
415#[allow(clippy::derive_partial_eq_without_eq)]
416#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct TableSchemaResp {
418    #[prost(message, optional, tag = "1")]
419    pub schema: ::core::option::Option<Schema>,
420}
421/// `Table::validate_expressions`
422/// TODO: This should be just `validate()`
423#[derive(serde::Serialize)]
424#[allow(clippy::derive_partial_eq_without_eq)]
425#[derive(Clone, PartialEq, ::prost::Message)]
426pub struct TableValidateExprReq {
427    #[prost(map = "string, string", tag = "1")]
428    pub column_to_expr: ::std::collections::HashMap<
429        ::prost::alloc::string::String,
430        ::prost::alloc::string::String,
431    >,
432}
433#[derive(serde::Serialize)]
434#[derive(serde::Deserialize)]
435#[allow(clippy::derive_partial_eq_without_eq)]
436#[derive(Clone, PartialEq, ::prost::Message)]
437pub struct TableValidateExprResp {
438    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
439    pub expression_schema: ::std::collections::HashMap<
440        ::prost::alloc::string::String,
441        i32,
442    >,
443    #[prost(map = "string, message", tag = "2")]
444    pub errors: ::std::collections::HashMap<
445        ::prost::alloc::string::String,
446        table_validate_expr_resp::ExprValidationError,
447    >,
448    #[prost(map = "string, string", tag = "3")]
449    pub expression_alias: ::std::collections::HashMap<
450        ::prost::alloc::string::String,
451        ::prost::alloc::string::String,
452    >,
453}
454/// Nested message and enum types in `TableValidateExprResp`.
455pub mod table_validate_expr_resp {
456    #[derive(serde::Serialize)]
457    #[derive(serde::Deserialize)]
458    #[allow(clippy::derive_partial_eq_without_eq)]
459    #[derive(Clone, PartialEq, ::prost::Message)]
460    pub struct ExprValidationError {
461        #[prost(string, tag = "1")]
462        pub error_message: ::prost::alloc::string::String,
463        #[prost(uint32, tag = "2")]
464        pub line: u32,
465        #[prost(uint32, tag = "3")]
466        pub column: u32,
467    }
468}
469/// `Table::view`
470#[derive(serde::Serialize)]
471#[allow(clippy::derive_partial_eq_without_eq)]
472#[derive(Clone, PartialEq, ::prost::Message)]
473pub struct TableMakeViewReq {
474    #[prost(string, tag = "1")]
475    pub view_id: ::prost::alloc::string::String,
476    #[prost(message, optional, tag = "2")]
477    pub config: ::core::option::Option<ViewConfig>,
478}
479#[derive(serde::Serialize)]
480#[allow(clippy::derive_partial_eq_without_eq)]
481#[derive(Clone, PartialEq, ::prost::Message)]
482pub struct TableMakeViewResp {
483    #[prost(string, tag = "1")]
484    pub view_id: ::prost::alloc::string::String,
485}
486/// `View::schema`
487#[derive(serde::Serialize)]
488#[allow(clippy::derive_partial_eq_without_eq)]
489#[derive(Clone, PartialEq, ::prost::Message)]
490pub struct ViewSchemaReq {}
491#[derive(serde::Serialize)]
492#[allow(clippy::derive_partial_eq_without_eq)]
493#[derive(Clone, PartialEq, ::prost::Message)]
494pub struct ViewSchemaResp {
495    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
496    pub schema: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
497}
498/// `View::dimensions`
499#[derive(serde::Serialize)]
500#[allow(clippy::derive_partial_eq_without_eq)]
501#[derive(Clone, PartialEq, ::prost::Message)]
502pub struct ViewDimensionsReq {}
503#[derive(serde::Serialize)]
504#[derive(serde::Deserialize)]
505#[allow(clippy::derive_partial_eq_without_eq)]
506#[derive(Clone, PartialEq, ::prost::Message)]
507pub struct ViewDimensionsResp {
508    #[prost(uint32, tag = "1")]
509    pub num_table_rows: u32,
510    #[prost(uint32, tag = "2")]
511    pub num_table_columns: u32,
512    #[prost(uint32, tag = "3")]
513    pub num_view_rows: u32,
514    #[prost(uint32, tag = "4")]
515    pub num_view_columns: u32,
516}
517/// `View::get_config`
518#[derive(serde::Serialize)]
519#[allow(clippy::derive_partial_eq_without_eq)]
520#[derive(Clone, PartialEq, ::prost::Message)]
521pub struct ViewGetConfigReq {}
522#[derive(serde::Serialize)]
523#[allow(clippy::derive_partial_eq_without_eq)]
524#[derive(Clone, PartialEq, ::prost::Message)]
525pub struct ViewGetConfigResp {
526    #[prost(message, optional, tag = "1")]
527    pub config: ::core::option::Option<ViewConfig>,
528}
529/// `Client::table`.
530#[derive(serde::Serialize)]
531#[allow(clippy::derive_partial_eq_without_eq)]
532#[derive(Clone, PartialEq, ::prost::Message)]
533pub struct MakeTableReq {
534    #[prost(message, optional, tag = "1")]
535    pub data: ::core::option::Option<MakeTableData>,
536    #[prost(message, optional, tag = "2")]
537    pub options: ::core::option::Option<make_table_req::MakeTableOptions>,
538}
539/// Nested message and enum types in `MakeTableReq`.
540pub mod make_table_req {
541    #[derive(serde::Serialize)]
542    #[allow(clippy::derive_partial_eq_without_eq)]
543    #[derive(Clone, PartialEq, ::prost::Message)]
544    pub struct MakeTableOptions {
545        #[prost(oneof = "make_table_options::MakeTableType", tags = "1, 2")]
546        pub make_table_type: ::core::option::Option<make_table_options::MakeTableType>,
547    }
548    /// Nested message and enum types in `MakeTableOptions`.
549    pub mod make_table_options {
550        #[derive(serde::Serialize)]
551        #[allow(clippy::derive_partial_eq_without_eq)]
552        #[derive(Clone, PartialEq, ::prost::Oneof)]
553        pub enum MakeTableType {
554            #[prost(string, tag = "1")]
555            MakeIndexTable(::prost::alloc::string::String),
556            #[prost(uint32, tag = "2")]
557            MakeLimitTable(u32),
558        }
559    }
560}
561#[derive(serde::Serialize)]
562#[allow(clippy::derive_partial_eq_without_eq)]
563#[derive(Clone, PartialEq, ::prost::Message)]
564pub struct MakeTableResp {}
565/// `Table::delete`
566#[derive(serde::Serialize)]
567#[allow(clippy::derive_partial_eq_without_eq)]
568#[derive(Clone, PartialEq, ::prost::Message)]
569pub struct TableDeleteReq {
570    #[prost(bool, tag = "1")]
571    pub is_immediate: bool,
572}
573#[derive(serde::Serialize)]
574#[allow(clippy::derive_partial_eq_without_eq)]
575#[derive(Clone, PartialEq, ::prost::Message)]
576pub struct TableDeleteResp {}
577/// `Table::on_delete`
578#[derive(serde::Serialize)]
579#[allow(clippy::derive_partial_eq_without_eq)]
580#[derive(Clone, PartialEq, ::prost::Message)]
581pub struct TableOnDeleteReq {}
582#[derive(serde::Serialize)]
583#[allow(clippy::derive_partial_eq_without_eq)]
584#[derive(Clone, PartialEq, ::prost::Message)]
585pub struct TableOnDeleteResp {}
586/// `Table::make_port`
587#[derive(serde::Serialize)]
588#[allow(clippy::derive_partial_eq_without_eq)]
589#[derive(Clone, PartialEq, ::prost::Message)]
590pub struct TableMakePortReq {}
591#[derive(serde::Serialize)]
592#[allow(clippy::derive_partial_eq_without_eq)]
593#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct TableMakePortResp {
595    #[prost(uint32, tag = "1")]
596    pub port_id: u32,
597}
598/// `Table::remove_delete`
599#[derive(serde::Serialize)]
600#[allow(clippy::derive_partial_eq_without_eq)]
601#[derive(Clone, PartialEq, ::prost::Message)]
602pub struct TableRemoveDeleteReq {
603    #[prost(uint32, tag = "1")]
604    pub id: u32,
605}
606#[derive(serde::Serialize)]
607#[allow(clippy::derive_partial_eq_without_eq)]
608#[derive(Clone, PartialEq, ::prost::Message)]
609pub struct TableRemoveDeleteResp {}
610/// `Table::update`
611#[derive(serde::Serialize)]
612#[allow(clippy::derive_partial_eq_without_eq)]
613#[derive(Clone, PartialEq, ::prost::Message)]
614pub struct TableUpdateReq {
615    #[prost(message, optional, tag = "1")]
616    pub data: ::core::option::Option<MakeTableData>,
617    #[prost(uint32, tag = "2")]
618    pub port_id: u32,
619}
620#[derive(serde::Serialize)]
621#[allow(clippy::derive_partial_eq_without_eq)]
622#[derive(Clone, PartialEq, ::prost::Message)]
623pub struct TableUpdateResp {}
624/// `Table::replace`
625#[derive(serde::Serialize)]
626#[allow(clippy::derive_partial_eq_without_eq)]
627#[derive(Clone, PartialEq, ::prost::Message)]
628pub struct TableReplaceReq {
629    #[prost(message, optional, tag = "1")]
630    pub data: ::core::option::Option<MakeTableData>,
631}
632#[derive(serde::Serialize)]
633#[allow(clippy::derive_partial_eq_without_eq)]
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct TableReplaceResp {}
636/// `Table::remove`
637#[derive(serde::Serialize)]
638#[allow(clippy::derive_partial_eq_without_eq)]
639#[derive(Clone, PartialEq, ::prost::Message)]
640pub struct TableRemoveReq {
641    #[prost(message, optional, tag = "1")]
642    pub data: ::core::option::Option<MakeTableData>,
643}
644#[derive(serde::Serialize)]
645#[allow(clippy::derive_partial_eq_without_eq)]
646#[derive(Clone, PartialEq, ::prost::Message)]
647pub struct TableRemoveResp {}
648#[derive(serde::Serialize)]
649#[allow(clippy::derive_partial_eq_without_eq)]
650#[derive(Clone, PartialEq, ::prost::Message)]
651pub struct ViewOnUpdateReq {
652    #[prost(enumeration = "view_on_update_req::Mode", optional, tag = "1")]
653    pub mode: ::core::option::Option<i32>,
654}
655/// Nested message and enum types in `ViewOnUpdateReq`.
656pub mod view_on_update_req {
657    #[derive(serde::Serialize)]
658    #[derive(
659        Clone,
660        Copy,
661        Debug,
662        PartialEq,
663        Eq,
664        Hash,
665        PartialOrd,
666        Ord,
667        ::prost::Enumeration
668    )]
669    #[repr(i32)]
670    pub enum Mode {
671        Row = 0,
672    }
673    impl Mode {
674        /// String value of the enum field names used in the ProtoBuf definition.
675        ///
676        /// The values are not transformed in any way and thus are considered stable
677        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
678        pub fn as_str_name(&self) -> &'static str {
679            match self {
680                Mode::Row => "ROW",
681            }
682        }
683        /// Creates an enum from field names used in the ProtoBuf definition.
684        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
685            match value {
686                "ROW" => Some(Self::Row),
687                _ => None,
688            }
689        }
690    }
691}
692#[derive(ts_rs::TS)]
693#[derive(serde::Serialize)]
694#[allow(clippy::derive_partial_eq_without_eq)]
695#[derive(Clone, PartialEq, ::prost::Message)]
696pub struct ViewOnUpdateResp {
697    #[prost(bytes = "vec", optional, tag = "1")]
698    #[ts(as = "Vec::<u8>")]
699    #[serde(with = "serde_bytes")]
700    pub delta: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
701    #[prost(uint32, tag = "2")]
702    pub port_id: u32,
703}
704#[derive(serde::Serialize)]
705#[allow(clippy::derive_partial_eq_without_eq)]
706#[derive(Clone, PartialEq, ::prost::Message)]
707pub struct ViewOnDeleteReq {}
708#[derive(serde::Serialize)]
709#[allow(clippy::derive_partial_eq_without_eq)]
710#[derive(Clone, PartialEq, ::prost::Message)]
711pub struct ViewOnDeleteResp {}
712#[derive(serde::Serialize)]
713#[allow(clippy::derive_partial_eq_without_eq)]
714#[derive(Clone, PartialEq, ::prost::Message)]
715pub struct ViewRemoveDeleteReq {
716    #[prost(uint32, tag = "1")]
717    pub id: u32,
718}
719#[derive(serde::Serialize)]
720#[allow(clippy::derive_partial_eq_without_eq)]
721#[derive(Clone, PartialEq, ::prost::Message)]
722pub struct ViewRemoveDeleteResp {}
723#[derive(serde::Serialize)]
724#[allow(clippy::derive_partial_eq_without_eq)]
725#[derive(Clone, PartialEq, ::prost::Message)]
726pub struct ViewToColumnsStringReq {
727    #[prost(message, optional, tag = "1")]
728    pub viewport: ::core::option::Option<ViewPort>,
729    #[prost(bool, optional, tag = "2")]
730    pub id: ::core::option::Option<bool>,
731    #[prost(bool, optional, tag = "3")]
732    pub index: ::core::option::Option<bool>,
733    #[prost(bool, optional, tag = "4")]
734    pub formatted: ::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}
756#[derive(serde::Serialize)]
757#[allow(clippy::derive_partial_eq_without_eq)]
758#[derive(Clone, PartialEq, ::prost::Message)]
759pub struct ViewToRowsStringResp {
760    #[prost(string, tag = "1")]
761    pub json_string: ::prost::alloc::string::String,
762}
763#[derive(serde::Serialize)]
764#[allow(clippy::derive_partial_eq_without_eq)]
765#[derive(Clone, PartialEq, ::prost::Message)]
766pub struct ViewToNdjsonStringReq {
767    #[prost(message, optional, tag = "1")]
768    pub viewport: ::core::option::Option<ViewPort>,
769    #[prost(bool, optional, tag = "2")]
770    pub id: ::core::option::Option<bool>,
771    #[prost(bool, optional, tag = "3")]
772    pub index: ::core::option::Option<bool>,
773    #[prost(bool, optional, tag = "4")]
774    pub formatted: ::core::option::Option<bool>,
775}
776#[derive(serde::Serialize)]
777#[allow(clippy::derive_partial_eq_without_eq)]
778#[derive(Clone, PartialEq, ::prost::Message)]
779pub struct ViewToNdjsonStringResp {
780    #[prost(string, tag = "1")]
781    pub ndjson_string: ::prost::alloc::string::String,
782}
783#[derive(serde::Serialize)]
784#[allow(clippy::derive_partial_eq_without_eq)]
785#[derive(Clone, PartialEq, ::prost::Message)]
786pub struct ViewToArrowReq {
787    #[prost(message, optional, tag = "1")]
788    pub viewport: ::core::option::Option<ViewPort>,
789    #[prost(string, optional, tag = "2")]
790    pub compression: ::core::option::Option<::prost::alloc::string::String>,
791}
792#[derive(serde::Serialize)]
793#[allow(clippy::derive_partial_eq_without_eq)]
794#[derive(Clone, PartialEq, ::prost::Message)]
795pub struct ViewToArrowResp {
796    #[prost(bytes = "vec", tag = "1")]
797    #[serde(skip)]
798    pub arrow: ::prost::alloc::vec::Vec<u8>,
799}
800#[derive(serde::Serialize)]
801#[allow(clippy::derive_partial_eq_without_eq)]
802#[derive(Clone, PartialEq, ::prost::Message)]
803pub struct ViewColumnPathsReq {
804    #[prost(uint32, optional, tag = "1")]
805    pub start_col: ::core::option::Option<u32>,
806    #[prost(uint32, optional, tag = "2")]
807    pub end_col: ::core::option::Option<u32>,
808}
809#[derive(serde::Serialize)]
810#[allow(clippy::derive_partial_eq_without_eq)]
811#[derive(Clone, PartialEq, ::prost::Message)]
812pub struct ViewColumnPathsResp {
813    /// repeated ColumnPath paths = 1;
814    #[prost(string, repeated, tag = "1")]
815    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
816}
817#[derive(serde::Serialize)]
818#[allow(clippy::derive_partial_eq_without_eq)]
819#[derive(Clone, PartialEq, ::prost::Message)]
820pub struct ViewDeleteReq {}
821#[derive(serde::Serialize)]
822#[allow(clippy::derive_partial_eq_without_eq)]
823#[derive(Clone, PartialEq, ::prost::Message)]
824pub struct ViewDeleteResp {}
825#[derive(serde::Serialize)]
826#[allow(clippy::derive_partial_eq_without_eq)]
827#[derive(Clone, PartialEq, ::prost::Message)]
828pub struct ViewGetMinMaxReq {
829    #[prost(string, tag = "1")]
830    pub column_name: ::prost::alloc::string::String,
831}
832#[derive(serde::Serialize)]
833#[allow(clippy::derive_partial_eq_without_eq)]
834#[derive(Clone, PartialEq, ::prost::Message)]
835pub struct ViewGetMinMaxResp {
836    #[prost(string, tag = "1")]
837    pub min: ::prost::alloc::string::String,
838    #[prost(string, tag = "2")]
839    pub max: ::prost::alloc::string::String,
840}
841#[derive(serde::Serialize)]
842#[allow(clippy::derive_partial_eq_without_eq)]
843#[derive(Clone, PartialEq, ::prost::Message)]
844pub struct ViewExpressionSchemaReq {}
845#[derive(serde::Serialize)]
846#[allow(clippy::derive_partial_eq_without_eq)]
847#[derive(Clone, PartialEq, ::prost::Message)]
848pub struct ViewExpressionSchemaResp {
849    #[prost(map = "string, enumeration(ColumnType)", tag = "1")]
850    pub schema: ::std::collections::HashMap<::prost::alloc::string::String, i32>,
851}
852#[derive(serde::Serialize)]
853#[allow(clippy::derive_partial_eq_without_eq)]
854#[derive(Clone, PartialEq, ::prost::Message)]
855pub struct ViewToCsvReq {
856    #[prost(message, optional, tag = "1")]
857    pub viewport: ::core::option::Option<ViewPort>,
858}
859#[derive(serde::Serialize)]
860#[allow(clippy::derive_partial_eq_without_eq)]
861#[derive(Clone, PartialEq, ::prost::Message)]
862pub struct ViewToCsvResp {
863    #[prost(string, tag = "1")]
864    pub csv: ::prost::alloc::string::String,
865}
866#[derive(serde::Serialize)]
867#[allow(clippy::derive_partial_eq_without_eq)]
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct ViewRemoveOnUpdateReq {
870    #[prost(uint32, tag = "1")]
871    pub id: u32,
872}
873#[derive(serde::Serialize)]
874#[allow(clippy::derive_partial_eq_without_eq)]
875#[derive(Clone, PartialEq, ::prost::Message)]
876pub struct ViewRemoveOnUpdateResp {}
877#[derive(serde::Serialize)]
878#[allow(clippy::derive_partial_eq_without_eq)]
879#[derive(Clone, PartialEq, ::prost::Message)]
880pub struct ViewCollapseReq {
881    #[prost(uint32, tag = "1")]
882    pub row_index: u32,
883}
884#[derive(serde::Serialize)]
885#[allow(clippy::derive_partial_eq_without_eq)]
886#[derive(Clone, PartialEq, ::prost::Message)]
887pub struct ViewCollapseResp {
888    #[prost(uint32, tag = "1")]
889    pub num_changed: u32,
890}
891#[derive(serde::Serialize)]
892#[allow(clippy::derive_partial_eq_without_eq)]
893#[derive(Clone, PartialEq, ::prost::Message)]
894pub struct ViewExpandReq {
895    #[prost(uint32, tag = "1")]
896    pub row_index: u32,
897}
898#[derive(serde::Serialize)]
899#[allow(clippy::derive_partial_eq_without_eq)]
900#[derive(Clone, PartialEq, ::prost::Message)]
901pub struct ViewExpandResp {
902    #[prost(uint32, tag = "1")]
903    pub num_changed: u32,
904}
905/// `View::set_depth`
906#[derive(serde::Serialize)]
907#[allow(clippy::derive_partial_eq_without_eq)]
908#[derive(Clone, PartialEq, ::prost::Message)]
909pub struct ViewSetDepthReq {
910    #[prost(uint32, tag = "1")]
911    pub depth: u32,
912}
913#[derive(serde::Serialize)]
914#[allow(clippy::derive_partial_eq_without_eq)]
915#[derive(Clone, PartialEq, ::prost::Message)]
916pub struct ViewSetDepthResp {}
917#[derive(serde::Serialize)]
918#[allow(clippy::derive_partial_eq_without_eq)]
919#[derive(Clone, PartialEq, ::prost::Message)]
920pub struct ServerSystemInfoReq {}
921#[derive(serde::Serialize)]
922#[allow(clippy::derive_partial_eq_without_eq)]
923#[derive(Clone, PartialEq, ::prost::Message)]
924pub struct ServerSystemInfoResp {
925    #[prost(uint64, tag = "1")]
926    pub heap_size: u64,
927    #[prost(uint64, tag = "2")]
928    pub used_size: u64,
929    #[prost(uint32, tag = "3")]
930    pub cpu_time: u32,
931    #[prost(uint32, tag = "4")]
932    pub cpu_time_epoch: u32,
933}
934#[derive(serde::Serialize)]
935#[allow(clippy::derive_partial_eq_without_eq)]
936#[derive(Clone, PartialEq, ::prost::Message)]
937pub struct ViewConfig {
938    #[prost(string, repeated, tag = "1")]
939    pub group_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
940    #[prost(string, repeated, tag = "2")]
941    pub split_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
942    #[prost(message, optional, tag = "3")]
943    pub columns: ::core::option::Option<ColumnsUpdate>,
944    #[prost(message, repeated, tag = "4")]
945    pub filter: ::prost::alloc::vec::Vec<view_config::Filter>,
946    #[prost(message, repeated, tag = "5")]
947    pub sort: ::prost::alloc::vec::Vec<view_config::Sort>,
948    #[prost(map = "string, string", tag = "6")]
949    pub expressions: ::std::collections::HashMap<
950        ::prost::alloc::string::String,
951        ::prost::alloc::string::String,
952    >,
953    #[prost(map = "string, message", tag = "7")]
954    pub aggregates: ::std::collections::HashMap<
955        ::prost::alloc::string::String,
956        view_config::AggList,
957    >,
958    #[prost(enumeration = "view_config::FilterReducer", tag = "8")]
959    pub filter_op: i32,
960    #[prost(uint32, optional, tag = "9")]
961    pub group_by_depth: ::core::option::Option<u32>,
962    #[prost(enumeration = "GroupRollupMode", optional, tag = "10")]
963    pub group_rollup_mode: ::core::option::Option<i32>,
964}
965/// Nested message and enum types in `ViewConfig`.
966pub mod view_config {
967    #[derive(serde::Serialize)]
968    #[allow(clippy::derive_partial_eq_without_eq)]
969    #[derive(Clone, PartialEq, ::prost::Message)]
970    pub struct AggList {
971        #[prost(string, repeated, tag = "1")]
972        pub aggregations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
973    }
974    #[derive(serde::Serialize)]
975    #[allow(clippy::derive_partial_eq_without_eq)]
976    #[derive(Clone, PartialEq, ::prost::Message)]
977    pub struct Sort {
978        #[prost(string, tag = "1")]
979        pub column: ::prost::alloc::string::String,
980        #[prost(enumeration = "super::SortOp", tag = "2")]
981        pub op: i32,
982    }
983    #[derive(serde::Serialize)]
984    #[allow(clippy::derive_partial_eq_without_eq)]
985    #[derive(Clone, PartialEq, ::prost::Message)]
986    pub struct Filter {
987        #[prost(string, tag = "1")]
988        pub column: ::prost::alloc::string::String,
989        #[prost(string, tag = "2")]
990        pub op: ::prost::alloc::string::String,
991        #[prost(message, repeated, tag = "3")]
992        pub value: ::prost::alloc::vec::Vec<super::Scalar>,
993    }
994    #[derive(serde::Serialize)]
995    #[derive(
996        Clone,
997        Copy,
998        Debug,
999        PartialEq,
1000        Eq,
1001        Hash,
1002        PartialOrd,
1003        Ord,
1004        ::prost::Enumeration
1005    )]
1006    #[repr(i32)]
1007    pub enum FilterReducer {
1008        And = 0,
1009        Or = 1,
1010    }
1011    impl FilterReducer {
1012        /// String value of the enum field names used in the ProtoBuf definition.
1013        ///
1014        /// The values are not transformed in any way and thus are considered stable
1015        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1016        pub fn as_str_name(&self) -> &'static str {
1017            match self {
1018                FilterReducer::And => "AND",
1019                FilterReducer::Or => "OR",
1020            }
1021        }
1022        /// Creates an enum from field names used in the ProtoBuf definition.
1023        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1024            match value {
1025                "AND" => Some(Self::And),
1026                "OR" => Some(Self::Or),
1027                _ => None,
1028            }
1029        }
1030    }
1031}
1032#[derive(serde::Serialize)]
1033#[allow(clippy::derive_partial_eq_without_eq)]
1034#[derive(Clone, PartialEq, ::prost::Message)]
1035pub struct ColumnsUpdate {
1036    #[prost(oneof = "columns_update::OptColumns", tags = "1, 2")]
1037    pub opt_columns: ::core::option::Option<columns_update::OptColumns>,
1038}
1039/// Nested message and enum types in `ColumnsUpdate`.
1040pub mod columns_update {
1041    #[derive(serde::Serialize)]
1042    #[allow(clippy::derive_partial_eq_without_eq)]
1043    #[derive(Clone, PartialEq, ::prost::Message)]
1044    pub struct Columns {
1045        #[prost(string, repeated, tag = "1")]
1046        pub columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1047    }
1048    #[derive(serde::Serialize)]
1049    #[allow(clippy::derive_partial_eq_without_eq)]
1050    #[derive(Clone, PartialEq, ::prost::Oneof)]
1051    pub enum OptColumns {
1052        #[prost(enumeration = "::prost_types::NullValue", tag = "1")]
1053        DefaultColumns(i32),
1054        #[prost(message, tag = "2")]
1055        Columns(Columns),
1056    }
1057}
1058#[derive(serde::Serialize)]
1059#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1060#[repr(i32)]
1061pub enum StatusCode {
1062    ServerError = 0,
1063    ViewNotFound = 1,
1064    TransportError = 2,
1065}
1066impl StatusCode {
1067    /// String value of the enum field names used in the ProtoBuf definition.
1068    ///
1069    /// The values are not transformed in any way and thus are considered stable
1070    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1071    pub fn as_str_name(&self) -> &'static str {
1072        match self {
1073            StatusCode::ServerError => "SERVER_ERROR",
1074            StatusCode::ViewNotFound => "VIEW_NOT_FOUND",
1075            StatusCode::TransportError => "TRANSPORT_ERROR",
1076        }
1077    }
1078    /// Creates an enum from field names used in the ProtoBuf definition.
1079    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1080        match value {
1081            "SERVER_ERROR" => Some(Self::ServerError),
1082            "VIEW_NOT_FOUND" => Some(Self::ViewNotFound),
1083            "TRANSPORT_ERROR" => Some(Self::TransportError),
1084            _ => None,
1085        }
1086    }
1087}
1088/// View types
1089#[derive(ts_rs::TS)]
1090#[derive(serde::Serialize)]
1091#[derive(serde::Deserialize)]
1092#[serde(rename_all = "snake_case")]
1093#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1094#[repr(i32)]
1095pub enum ColumnType {
1096    String = 0,
1097    Date = 1,
1098    Datetime = 2,
1099    Integer = 3,
1100    Float = 4,
1101    Boolean = 5,
1102}
1103impl ColumnType {
1104    /// String value of the enum field names used in the ProtoBuf definition.
1105    ///
1106    /// The values are not transformed in any way and thus are considered stable
1107    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1108    pub fn as_str_name(&self) -> &'static str {
1109        match self {
1110            ColumnType::String => "STRING",
1111            ColumnType::Date => "DATE",
1112            ColumnType::Datetime => "DATETIME",
1113            ColumnType::Integer => "INTEGER",
1114            ColumnType::Float => "FLOAT",
1115            ColumnType::Boolean => "BOOLEAN",
1116        }
1117    }
1118    /// Creates an enum from field names used in the ProtoBuf definition.
1119    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1120        match value {
1121            "STRING" => Some(Self::String),
1122            "DATE" => Some(Self::Date),
1123            "DATETIME" => Some(Self::Datetime),
1124            "INTEGER" => Some(Self::Integer),
1125            "FLOAT" => Some(Self::Float),
1126            "BOOLEAN" => Some(Self::Boolean),
1127            _ => None,
1128        }
1129    }
1130}
1131/// TODO This belongs in features
1132#[derive(serde::Serialize)]
1133#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1134#[repr(i32)]
1135pub enum SortOp {
1136    SortNone = 0,
1137    SortAsc = 1,
1138    SortDesc = 2,
1139    SortColAsc = 3,
1140    SortColDesc = 4,
1141    SortAscAbs = 5,
1142    SortDescAbs = 6,
1143    SortColAscAbs = 7,
1144    SortColDescAbs = 8,
1145}
1146impl SortOp {
1147    /// String value of the enum field names used in the ProtoBuf definition.
1148    ///
1149    /// The values are not transformed in any way and thus are considered stable
1150    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1151    pub fn as_str_name(&self) -> &'static str {
1152        match self {
1153            SortOp::SortNone => "SORT_NONE",
1154            SortOp::SortAsc => "SORT_ASC",
1155            SortOp::SortDesc => "SORT_DESC",
1156            SortOp::SortColAsc => "SORT_COL_ASC",
1157            SortOp::SortColDesc => "SORT_COL_DESC",
1158            SortOp::SortAscAbs => "SORT_ASC_ABS",
1159            SortOp::SortDescAbs => "SORT_DESC_ABS",
1160            SortOp::SortColAscAbs => "SORT_COL_ASC_ABS",
1161            SortOp::SortColDescAbs => "SORT_COL_DESC_ABS",
1162        }
1163    }
1164    /// Creates an enum from field names used in the ProtoBuf definition.
1165    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1166        match value {
1167            "SORT_NONE" => Some(Self::SortNone),
1168            "SORT_ASC" => Some(Self::SortAsc),
1169            "SORT_DESC" => Some(Self::SortDesc),
1170            "SORT_COL_ASC" => Some(Self::SortColAsc),
1171            "SORT_COL_DESC" => Some(Self::SortColDesc),
1172            "SORT_ASC_ABS" => Some(Self::SortAscAbs),
1173            "SORT_DESC_ABS" => Some(Self::SortDescAbs),
1174            "SORT_COL_ASC_ABS" => Some(Self::SortColAscAbs),
1175            "SORT_COL_DESC_ABS" => Some(Self::SortColDescAbs),
1176            _ => None,
1177        }
1178    }
1179}
1180#[derive(serde::Serialize)]
1181#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1182#[repr(i32)]
1183pub enum GroupRollupMode {
1184    Rollup = 0,
1185    Flat = 1,
1186    Total = 2,
1187}
1188impl GroupRollupMode {
1189    /// String value of the enum field names used in the ProtoBuf definition.
1190    ///
1191    /// The values are not transformed in any way and thus are considered stable
1192    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1193    pub fn as_str_name(&self) -> &'static str {
1194        match self {
1195            GroupRollupMode::Rollup => "ROLLUP",
1196            GroupRollupMode::Flat => "FLAT",
1197            GroupRollupMode::Total => "TOTAL",
1198        }
1199    }
1200    /// Creates an enum from field names used in the ProtoBuf definition.
1201    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1202        match value {
1203            "ROLLUP" => Some(Self::Rollup),
1204            "FLAT" => Some(Self::Flat),
1205            "TOTAL" => Some(Self::Total),
1206            _ => None,
1207        }
1208    }
1209}