qlue-ls 2.8.0

A language server for SPARQL
Documentation
use serde::{Deserialize, Serialize};

use crate::server::lsp::{
    LspMessage,
    rpc::{RequestId, RequestMessageBase, ResponseMessageBase},
};

#[derive(Debug, Deserialize, PartialEq)]
pub struct PingBackendRequest {
    #[serde(flatten)]
    pub base: RequestMessageBase,
    pub params: PingBackendParams,
}

impl LspMessage for PingBackendRequest {}

impl PingBackendRequest {
    pub(crate) fn get_id(&self) -> &RequestId {
        &self.base.id
    }
}

#[derive(Debug, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct PingBackendParams {
    pub backend_name: Option<String>,
}

#[derive(Debug, Serialize, PartialEq)]
pub struct PingBackendResponse {
    #[serde(flatten)]
    pub base: ResponseMessageBase,
    pub result: PingBackendResult,
}

impl LspMessage for PingBackendResponse {}

impl PingBackendResponse {
    pub fn new(id: &RequestId, available: bool) -> Self {
        PingBackendResponse {
            base: ResponseMessageBase::success(id),
            result: PingBackendResult { available },
        }
    }
}

#[derive(Debug, Serialize, PartialEq)]
pub struct PingBackendResult {
    pub available: bool,
}