pub struct CollectingSink { /* private fields */ }Expand description
Collects every diagnostic and remembers whether any was an error.
Used by tests and by library callers that want the full list. Always
returns Ok(()) from emit.
§Examples
use mos_core::{CollectingSink, Diagnostic, DiagnosticSink, Severity, codes};
let mut sink = CollectingSink::new();
assert!(
sink.emit(Diagnostic::simple(&codes::MOS0028, None, "unterminated"))
.is_ok(),
"collecting sink must not abort"
);
assert!(
sink.emit(Diagnostic::simple(&codes::MOS0010, None, "missing ident"))
.is_ok(),
"collecting sink must not abort"
);
assert!(sink.had_error()); // MOS0010 is an error
assert_eq!(sink.into_diagnostics().len(), 2);Implementations§
Source§impl CollectingSink
impl CollectingSink
Sourcepub fn diagnostics(&self) -> &[Diagnostic]
pub fn diagnostics(&self) -> &[Diagnostic]
Borrow the collected diagnostics in emission order.
Sourcepub fn into_diagnostics(self) -> Vec<Diagnostic>
pub fn into_diagnostics(self) -> Vec<Diagnostic>
Consume the sink, yielding the collected diagnostics.
Trait Implementations§
Source§impl Debug for CollectingSink
impl Debug for CollectingSink
Source§impl Default for CollectingSink
impl Default for CollectingSink
Source§fn default() -> CollectingSink
fn default() -> CollectingSink
Returns the “default value” for a type. Read more
Source§impl DiagnosticSink for CollectingSink
impl DiagnosticSink for CollectingSink
Source§fn emit(&mut self, diagnostic: Diagnostic) -> DiagnosticResult<()>
fn emit(&mut self, diagnostic: Diagnostic) -> DiagnosticResult<()>
Accept one fully-built diagnostic. Read more
Auto Trait Implementations§
impl Freeze for CollectingSink
impl RefUnwindSafe for CollectingSink
impl Send for CollectingSink
impl Sync for CollectingSink
impl Unpin for CollectingSink
impl UnsafeUnpin for CollectingSink
impl UnwindSafe for CollectingSink
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
Mutably borrows from an owned value. Read more