jsona_lsp/lsp_ext/
request.rs

1use lsp_types::{request::Request, Url};
2use serde::{Deserialize, Serialize};
3use serde_json::Value;
4
5pub enum ListSchemasRequest {}
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct ListSchemasParams {
10    pub document_uri: Url,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14#[serde(rename_all = "camelCase")]
15pub struct ListSchemasResponse {
16    pub schemas: Vec<SchemaInfo>,
17}
18
19impl Request for ListSchemasRequest {
20    type Params = ListSchemasParams;
21    type Result = ListSchemasResponse;
22    const METHOD: &'static str = "jsona/listSchemas";
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct SchemaInfo {
28    pub url: Url,
29    pub meta: Value,
30}
31
32pub enum AssociatedSchemaRequest {}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct AssociatedSchemaParams {
37    pub document_uri: Url,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(rename_all = "camelCase")]
42pub struct AssociatedSchemaResponse {
43    pub schema: Option<SchemaInfo>,
44}
45
46impl Request for AssociatedSchemaRequest {
47    type Params = AssociatedSchemaParams;
48    type Result = AssociatedSchemaResponse;
49    const METHOD: &'static str = "jsona/associatedSchema";
50}