Implement Rust web sidebar title and tree interactions
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SearchQuery {
|
||||
pub query: String,
|
||||
pub workspace_id: String,
|
||||
pub scope: SearchScope,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub page_id: Option<String>,
|
||||
pub limit: u32,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum SearchScope {
|
||||
Workspace,
|
||||
CurrentPage,
|
||||
Pinned,
|
||||
Recent,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SearchResultProjection {
|
||||
pub id: String,
|
||||
pub title: String,
|
||||
pub snippet: String,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub updated_at: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub created_at: Option<String>,
|
||||
pub match_field: String,
|
||||
pub has_ocr: bool,
|
||||
pub public_path: String,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub node_id: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub subtree_root_id: Option<String>,
|
||||
#[serde(default)]
|
||||
pub evidence: Vec<SearchHighlight>,
|
||||
pub score: f64,
|
||||
pub projection_owner: SearchProjectionOwner,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SearchHighlight {
|
||||
pub kind: String,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub node_id: Option<String>,
|
||||
pub snippet: String,
|
||||
#[serde(default, skip_serializing_if = "Value::is_null")]
|
||||
pub meta: Value,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||||
#[serde(rename_all = "kebab-case")]
|
||||
pub enum SearchProjectionOwner {
|
||||
RustKernel,
|
||||
CompatIndex,
|
||||
}
|
||||
Reference in New Issue
Block a user