bsp_types/
server_capabilities.rs1use super::providers::*;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Default, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct ServerCapabilities {
8 #[serde(skip_serializing_if = "Option::is_none")]
11 compile_provider: Option<CompileProvider>,
12
13 #[serde(skip_serializing_if = "Option::is_none")]
16 test_provider: Option<TestProvider>,
17
18 #[serde(skip_serializing_if = "Option::is_none")]
21 run_provider: Option<RunProvider>,
22
23 #[serde(skip_serializing_if = "Option::is_none")]
26 debug_provider: Option<DebugProvider>,
27
28 #[serde(skip_serializing_if = "Option::is_none")]
32 inverse_sources_provider: Option<bool>,
33
34 #[serde(skip_serializing_if = "Option::is_none")]
37 dependency_sources_provider: Option<bool>,
38
39 #[serde(skip_serializing_if = "Option::is_none")]
42 dependency_modules_provider: Option<bool>,
43
44 #[serde(skip_serializing_if = "Option::is_none")]
47 resources_provider: Option<bool>,
48
49 #[serde(skip_serializing_if = "Option::is_none")]
51 can_reload: Option<bool>,
52
53 #[serde(skip_serializing_if = "Option::is_none")]
56 build_target_changed_provider: Option<bool>,
57}
58
59impl ServerCapabilities {
60 pub fn set_compile_provider(&mut self, compile_provider: Option<CompileProvider>) {
62 self.compile_provider = compile_provider;
63 }
64
65 pub fn compile_provider(&self) -> Option<&CompileProvider> {
67 self.compile_provider.as_ref()
68 }
69
70 pub fn set_test_provider(&mut self, test_provider: Option<TestProvider>) {
72 self.test_provider = test_provider;
73 }
74
75 pub fn test_provider(&self) -> Option<&TestProvider> {
77 self.test_provider.as_ref()
78 }
79
80 pub fn set_run_provider(&mut self, run_provider: Option<RunProvider>) {
82 self.run_provider = run_provider;
83 }
84
85 pub fn run_provider(&self) -> Option<&RunProvider> {
87 self.run_provider.as_ref()
88 }
89
90 pub fn set_debug_provider(&mut self, debug_provider: Option<DebugProvider>) {
92 self.debug_provider = debug_provider;
93 }
94
95 pub fn debug_provider(&self) -> Option<&DebugProvider> {
97 self.debug_provider.as_ref()
98 }
99
100 pub fn set_inverse_sources_provider(&mut self, inverse_sources_provider: Option<bool>) {
102 self.inverse_sources_provider = inverse_sources_provider;
103 }
104
105 pub fn inverse_sources_provider(&self) -> Option<bool> {
107 self.inverse_sources_provider
108 }
109
110 pub fn set_dependency_sources_provider(&mut self, dependency_sources_provider: Option<bool>) {
112 self.dependency_sources_provider = dependency_sources_provider;
113 }
114
115 pub fn dependency_sources_provider(&self) -> Option<bool> {
117 self.dependency_sources_provider
118 }
119
120 pub fn set_dependency_modules_provider(&mut self, dependency_modules_provider: Option<bool>) {
122 self.dependency_modules_provider = dependency_modules_provider;
123 }
124
125 pub fn dependency_modules_provider(&self) -> Option<bool> {
127 self.dependency_modules_provider
128 }
129
130 pub fn set_resources_provider(&mut self, resources_provider: Option<bool>) {
132 self.resources_provider = resources_provider;
133 }
134
135 pub fn resources_provider(&self) -> Option<bool> {
137 self.resources_provider
138 }
139
140 pub fn set_can_reload(&mut self, can_reload: Option<bool>) {
142 self.can_reload = can_reload;
143 }
144
145 pub fn can_reload(&self) -> Option<bool> {
147 self.can_reload
148 }
149
150 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 pub fn build_target_changed_provider(&self) -> Option<bool> {
160 self.build_target_changed_provider
161 }
162}