Unnamed repository; edit this file 'description' to name the repository.
| -rw-r--r-- | lib/lsp-server/src/req_queue.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/lsp-server/src/req_queue.rs b/lib/lsp-server/src/req_queue.rs index c216864bee..84748bbca8 100644 --- a/lib/lsp-server/src/req_queue.rs +++ b/lib/lsp-server/src/req_queue.rs @@ -18,6 +18,12 @@ impl<I, O> Default for ReqQueue<I, O> { } } +impl<I, O> ReqQueue<I, O> { + pub fn has_pending(&self) -> bool { + self.incoming.has_pending() || self.outgoing.has_pending() + } +} + #[derive(Debug)] pub struct Incoming<I> { pending: HashMap<RequestId, I>, @@ -51,6 +57,10 @@ impl<I> Incoming<I> { pub fn is_completed(&self, id: &RequestId) -> bool { !self.pending.contains_key(id) } + + pub fn has_pending(&self) -> bool { + !self.pending.is_empty() + } } impl<O> Outgoing<O> { @@ -64,4 +74,8 @@ impl<O> Outgoing<O> { pub fn complete(&mut self, id: RequestId) -> Option<O> { self.pending.remove(&id) } + + pub fn has_pending(&self) -> bool { + !self.pending.is_empty() + } } |