aboutsummaryrefslogtreecommitdiff
path: root/crates/server/src/req.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/server/src/req.rs')
-rw-r--r--crates/server/src/req.rs21
1 files changed, 20 insertions, 1 deletions
diff --git a/crates/server/src/req.rs b/crates/server/src/req.rs
index 64e7ef4ae..10f0b2919 100644
--- a/crates/server/src/req.rs
+++ b/crates/server/src/req.rs
@@ -1,10 +1,29 @@
1use serde::{ser::Serialize, de::DeserializeOwned};
1use languageserver_types::{TextDocumentIdentifier, Range}; 2use languageserver_types::{TextDocumentIdentifier, Range};
2 3
3pub use languageserver_types::{ 4pub use languageserver_types::{
4 request::*, notification::*, 5 request::*, notification::*,
5 InitializeResult, PublishDiagnosticsParams 6 InitializeResult, PublishDiagnosticsParams,
6}; 7};
7 8
9
10pub trait ClientRequest: Send + 'static {
11 type Params: DeserializeOwned + Send + 'static;
12 type Result: Serialize + Send + 'static;
13 const METHOD: &'static str;
14}
15
16impl<T> ClientRequest for T
17 where T: Request + Send + 'static,
18 T::Params: DeserializeOwned + Send + 'static,
19 T::Result: Serialize + Send + 'static,
20{
21 type Params = <T as Request>::Params;
22 type Result = <T as Request>::Result;
23 const METHOD: &'static str = <T as Request>::METHOD;
24}
25
26
8pub enum SyntaxTree {} 27pub enum SyntaxTree {}
9 28
10impl Request for SyntaxTree { 29impl Request for SyntaxTree {