use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CompletionItem {
pub label: String,
pub kind: CompletionKind,
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insert_text: Option<String>,
#[serde(default)]
pub sort_order: i32,
#[serde(default)]
pub edit_start: usize,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum CompletionKind {
Keyword,
Function,
AggregateFunction,
Table,
Column,
Variable,
Operator,
Parameter,
Database,
Cluster,
Type,
Punctuation,
Other,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CompletionResult {
pub items: Vec<CompletionItem>,
}