sql_fun_server_api/
list_objects.rs1use std::path::PathBuf;
2
3use crate::TextSpan;
4
5#[derive(serde::Serialize, serde::Deserialize)]
7pub enum StringPred {
8 Exact(String),
10 StartsWith(String),
12 EndsWith(String),
14}
15
16#[derive(serde::Serialize, serde::Deserialize)]
18pub enum NameQuery {
19 LocalName(StringPred),
21 SchemaName(StringPred),
23}
24
25#[derive(serde::Serialize, serde::Deserialize)]
27pub enum ObjectKind {
28 All,
32 Table,
34 View,
36 Type,
38 Function,
40 MaterializedView,
42 Sequence,
44 Trigger,
46 Index,
48}
49
50#[derive(serde::Serialize, serde::Deserialize)]
52pub enum ObjectQuery {
53 Kind(ObjectKind),
55 Name(NameQuery),
57 Or(Vec<ObjectQuery>),
59 And(Vec<ObjectQuery>),
61 Not(Box<ObjectQuery>),
63}
64
65#[derive(serde::Serialize, serde::Deserialize)]
67pub enum ObjectSummaryField {
68 DefinitionFile,
70 DefinitionSpan,
72}
73
74#[derive(serde::Serialize, serde::Deserialize, derive_getters::Getters)]
76pub struct ListObjectArgs {
77 predicate: ObjectQuery,
79 extra_fields: Vec<ObjectSummaryField>,
81}
82
83#[derive(serde::Serialize, serde::Deserialize, derive_getters::Getters)]
85pub struct ObjectSummary {
86 schema_name: String,
88 local_name: String,
90 kind: ObjectKind,
92 definition_file: Option<PathBuf>,
94 definition_span: Option<TextSpan>,
96}