bsp_types/
server_capabilities.rs

1use super::providers::*;
2use serde::{Deserialize, Serialize};
3
4/// Server Capabilities
5#[derive(Debug, Default, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct ServerCapabilities {
8    /// The languages the server supports compilation
9    /// via method "buildTarget/compile".
10    #[serde(skip_serializing_if = "Option::is_none")]
11    compile_provider: Option<CompileProvider>,
12
13    /// The languages the server supports test execution
14    /// via method "buildTarget/test"
15    #[serde(skip_serializing_if = "Option::is_none")]
16    test_provider: Option<TestProvider>,
17
18    /// The languages the server supports run
19    /// via method "buildTarget/run"
20    #[serde(skip_serializing_if = "Option::is_none")]
21    run_provider: Option<RunProvider>,
22
23    /// The languages the server supports debugging
24    /// via method "debugSession/start"
25    #[serde(skip_serializing_if = "Option::is_none")]
26    debug_provider: Option<DebugProvider>,
27
28    /// The server can provide a list of targets that contain a
29    /// single text document
30    /// via the method "buildTarget/inverseSources"
31    #[serde(skip_serializing_if = "Option::is_none")]
32    inverse_sources_provider: Option<bool>,
33
34    /// The server provides sources for library dependencies
35    /// via method "buildTarget/dependencySources"
36    #[serde(skip_serializing_if = "Option::is_none")]
37    dependency_sources_provider: Option<bool>,
38
39    /// The server cam provide a list of dependency modules (libraries with meta information)
40    /// via method "buildTarget/dependencyModules"
41    #[serde(skip_serializing_if = "Option::is_none")]
42    dependency_modules_provider: Option<bool>,
43
44    /// The server provides all the resource dependencies
45    /// via method "buildTarget/resources"
46    #[serde(skip_serializing_if = "Option::is_none")]
47    resources_provider: Option<bool>,
48
49    /// Reloading the build state through workspace/reload is supported
50    #[serde(skip_serializing_if = "Option::is_none")]
51    can_reload: Option<bool>,
52
53    /// The server sends notifications to the client on build
54    /// target change events via "buildTarget/didChange"
55    #[serde(skip_serializing_if = "Option::is_none")]
56    build_target_changed_provider: Option<bool>,
57}
58
59impl ServerCapabilities {
60    /// Set the bsp server capabilities's compile provider.
61    pub fn set_compile_provider(&mut self, compile_provider: Option<CompileProvider>) {
62        self.compile_provider = compile_provider;
63    }
64
65    /// Get a reference to the bsp server capabilities's compile provider.
66    pub fn compile_provider(&self) -> Option<&CompileProvider> {
67        self.compile_provider.as_ref()
68    }
69
70    /// Set the bsp server capabilities's test provider.
71    pub fn set_test_provider(&mut self, test_provider: Option<TestProvider>) {
72        self.test_provider = test_provider;
73    }
74
75    /// Get a reference to the bsp server capabilities's test provider.
76    pub fn test_provider(&self) -> Option<&TestProvider> {
77        self.test_provider.as_ref()
78    }
79
80    /// Set the bsp server capabilities's run provider.
81    pub fn set_run_provider(&mut self, run_provider: Option<RunProvider>) {
82        self.run_provider = run_provider;
83    }
84
85    /// Get a reference to the bsp server capabilities's run provider.
86    pub fn run_provider(&self) -> Option<&RunProvider> {
87        self.run_provider.as_ref()
88    }
89
90    /// Set the bsp server capabilities's debug provider.
91    pub fn set_debug_provider(&mut self, debug_provider: Option<DebugProvider>) {
92        self.debug_provider = debug_provider;
93    }
94
95    /// Get a reference to the bsp server capabilities's debug provider.
96    pub fn debug_provider(&self) -> Option<&DebugProvider> {
97        self.debug_provider.as_ref()
98    }
99
100    /// Set the bsp server capabilities's inverse sources provider.
101    pub fn set_inverse_sources_provider(&mut self, inverse_sources_provider: Option<bool>) {
102        self.inverse_sources_provider = inverse_sources_provider;
103    }
104
105    /// Get the bsp server capabilities's inverse sources provider.
106    pub fn inverse_sources_provider(&self) -> Option<bool> {
107        self.inverse_sources_provider
108    }
109
110    /// Set the bsp server capabilities's dependency sources provider.
111    pub fn set_dependency_sources_provider(&mut self, dependency_sources_provider: Option<bool>) {
112        self.dependency_sources_provider = dependency_sources_provider;
113    }
114
115    /// Get the bsp server capabilities's dependency sources provider.
116    pub fn dependency_sources_provider(&self) -> Option<bool> {
117        self.dependency_sources_provider
118    }
119
120    /// Set the bsp server capabilities's dependency modules provider.
121    pub fn set_dependency_modules_provider(&mut self, dependency_modules_provider: Option<bool>) {
122        self.dependency_modules_provider = dependency_modules_provider;
123    }
124
125    /// Get the bsp server capabilities's dependency modules provider.
126    pub fn dependency_modules_provider(&self) -> Option<bool> {
127        self.dependency_modules_provider
128    }
129
130    /// Set the bsp server capabilities's resources provider.
131    pub fn set_resources_provider(&mut self, resources_provider: Option<bool>) {
132        self.resources_provider = resources_provider;
133    }
134
135    /// Get the bsp server capabilities's resources provider.
136    pub fn resources_provider(&self) -> Option<bool> {
137        self.resources_provider
138    }
139
140    /// Set the bsp server capabilities's can reload.
141    pub fn set_can_reload(&mut self, can_reload: Option<bool>) {
142        self.can_reload = can_reload;
143    }
144
145    /// Get the bsp server capabilities's can reload.
146    pub fn can_reload(&self) -> Option<bool> {
147        self.can_reload
148    }
149
150    /// Set the bsp server capabilities's build target changed provider.
151    pub fn set_build_target_changed_provider(
152        &mut self,
153        build_target_changed_provider: Option<bool>,
154    ) {
155        self.build_target_changed_provider = build_target_changed_provider;
156    }
157
158    /// Get the bsp server capabilities's build target changed provider.
159    pub fn build_target_changed_provider(&self) -> Option<bool> {
160        self.build_target_changed_provider
161    }
162}