pub struct MultiSpan { /* private fields */ }
Expand description
A collection of spans. Spans have two orthogonal attributes:
- they can be primary spans. In this case they are the locus of the error,
and would be rendered with
^^^
. - they can have a label. In this case, the label is written next to the mark in the snippet when we render.
Implementations§
source§impl MultiSpan
impl MultiSpan
pub fn new() -> MultiSpan
pub fn from_span(primary_span: Span) -> MultiSpan
pub fn from_spans(vec: Vec<Span>) -> MultiSpan
pub fn push_span_label(&mut self, span: Span, label: String)
sourcepub fn primary_span(&self) -> Option<Span>
pub fn primary_span(&self) -> Option<Span>
Selects the first primary span (if any)
sourcepub fn primary_spans(&self) -> &[Span]
pub fn primary_spans(&self) -> &[Span]
Returns all primary spans.
sourcepub fn is_dummy(&self) -> bool
pub fn is_dummy(&self) -> bool
Returns true
if this contains only a dummy primary span with any
hygienic context.
sourcepub fn replace(&mut self, before: Span, after: Span) -> bool
pub fn replace(&mut self, before: Span, after: Span) -> bool
Replaces all occurrences of one Span with another. Used to move Spans in areas that don’t display well (like std macros). Returns true if replacements occurred.
sourcepub fn span_labels(&self) -> Vec<SpanLabel>
pub fn span_labels(&self) -> Vec<SpanLabel>
Returns the strings to highlight. We always ensure that there
is an entry for each of the primary spans – for each primary
span P, if there is at least one label with span P, we return
those labels (marked as primary). But otherwise we return
SpanLabel
instances with empty labels.
Trait Implementations§
impl Eq for MultiSpan
impl StructuralPartialEq for MultiSpan
Auto Trait Implementations§
impl Freeze for MultiSpan
impl RefUnwindSafe for MultiSpan
impl Send for MultiSpan
impl Sync for MultiSpan
impl Unpin for MultiSpan
impl UnwindSafe for MultiSpan
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
§impl<T> CallHasher for T
impl<T> CallHasher for T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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> ⓘ
Converts
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> ⓘ
Converts
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