pub enum AsyncCompletionOutcome {
Items {
candidates: Vec<RawCandidate>,
sources: Vec<SourceId>,
is_incomplete: bool,
},
Nothing,
}Expand description
OR.7: drain payload for the async completion fan-out — every
AsyncCompletionSource the active modes contribute, not only
LSP’s.
This was lattice_lsp::cache::InsertCompletionLspOutcome, and the
name was load-bearing in the wrong direction: it described the one
source the host actually drove, and so nothing made it obvious that
a WASM completion source could register a carrier mode, spawn an
actor, connect an adapter, and still never have generate called.
The type is named for the fan-out now because the fan-out is what
it carries.
Variants§
Items
Fields
candidates: Vec<RawCandidate>sources: Vec<SourceId>Every source that took part in this round, whether or not
it produced anything. The drain drops these sources’
previous candidates before adding candidates, which is
what makes a re-fire replace rather than duplicate.
A source that answered with nothing must still appear here — otherwise its stale rows from the previous round survive a round in which it deliberately declined.
Nothing
The fan-out had nothing to run (no async sources enabled for
this buffer). Distinct from Items with an empty list, which
means sources ran and declined — that one still has to clear
their previous rows.
Trait Implementations§
Source§impl Clone for AsyncCompletionOutcome
impl Clone for AsyncCompletionOutcome
Source§fn clone(&self) -> AsyncCompletionOutcome
fn clone(&self) -> AsyncCompletionOutcome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for AsyncCompletionOutcome
impl !UnwindSafe for AsyncCompletionOutcome
impl Freeze for AsyncCompletionOutcome
impl Send for AsyncCompletionOutcome
impl Sync for AsyncCompletionOutcome
impl Unpin for AsyncCompletionOutcome
impl UnsafeUnpin for AsyncCompletionOutcome
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more