aboutsummaryrefslogtreecommitdiff
path: root/crates/server/src/main_loop/subscriptions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/server/src/main_loop/subscriptions.rs')
-rw-r--r--crates/server/src/main_loop/subscriptions.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/crates/server/src/main_loop/subscriptions.rs b/crates/server/src/main_loop/subscriptions.rs
new file mode 100644
index 000000000..963096aef
--- /dev/null
+++ b/crates/server/src/main_loop/subscriptions.rs
@@ -0,0 +1,21 @@
1use std::collections::HashSet;
2use libanalysis::FileId;
3
4pub struct Subscriptions {
5 subs: HashSet<FileId>,
6}
7
8impl Subscriptions {
9 pub fn new() -> Subscriptions {
10 Subscriptions { subs: HashSet::new() }
11 }
12 pub fn add_sub(&mut self, file_id: FileId) {
13 self.subs.insert(file_id);
14 }
15 pub fn remove_sub(&mut self, file_id: FileId) {
16 self.subs.remove(&file_id);
17 }
18 pub fn subscriptions(&self) -> Vec<FileId> {
19 self.subs.iter().cloned().collect()
20 }
21}