From ba0072401c3b8b6c9391428672bd91055150c8ee Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 21 Dec 2018 15:46:01 +0300 Subject: use Completions to collect completions --- crates/ra_analysis/src/completion/completion_item.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'crates/ra_analysis/src/completion/completion_item.rs') diff --git a/crates/ra_analysis/src/completion/completion_item.rs b/crates/ra_analysis/src/completion/completion_item.rs index 445d6bf41..8aa9da005 100644 --- a/crates/ra_analysis/src/completion/completion_item.rs +++ b/crates/ra_analysis/src/completion/completion_item.rs @@ -53,8 +53,8 @@ pub(crate) struct Builder { } impl Builder { - pub fn add_to(self, acc: &mut Vec) { - acc.push(self.build()) + pub fn add_to(self, acc: &mut Completions) { + acc.add(self.build()) } pub fn build(self) -> CompletionItem { @@ -81,7 +81,7 @@ impl Into for Builder { } /// Represents an in-progress set of completions being built. -#[derive(Debug)] +#[derive(Debug, Default)] pub(crate) struct Completions { buf: Vec, } @@ -90,6 +90,13 @@ impl Completions { pub(crate) fn add(&mut self, item: impl Into) { self.buf.push(item.into()) } + pub(crate) fn add_all(&mut self, items: I) + where + I: IntoIterator, + I::Item: Into, + { + items.into_iter().for_each(|item| self.add(item.into())) + } } impl Into> for Completions { -- cgit v1.2.3