24 lines
611 B
Rust
24 lines
611 B
Rust
use crate::error::Error;
|
|
|
|
#[allow(clippy::result_large_err)]
|
|
pub fn cast_request<R>(request: lsp_server::Request) -> Result<R::Params, Error>
|
|
where
|
|
R: lsp_types::request::Request,
|
|
R::Params: serde::de::DeserializeOwned,
|
|
{
|
|
let (_, params) = request.extract(R::METHOD)?;
|
|
|
|
Ok(params)
|
|
}
|
|
|
|
#[allow(clippy::result_large_err)]
|
|
pub fn cast_notification<N>(notification: lsp_server::Notification) -> Result<N::Params, Error>
|
|
where
|
|
N: lsp_types::notification::Notification,
|
|
N::Params: serde::de::DeserializeOwned,
|
|
{
|
|
let params = notification.extract::<N::Params>(N::METHOD)?;
|
|
|
|
Ok(params)
|
|
}
|