[−][src]Struct swc_common::Span
Spans represent a region of code, used for error reporting. Positions in spans are absolute positions from the beginning of the source_map, not positions relative to SourceFiles. Methods on the SourceMap can be used to relate spans back to the original source. You must be careful if the span crosses more than one file - you will not be able to use many of the functions on spans in source_map and you cannot assume that the length of the span = hi - lo; there may be space in the BytePos range between files.
Fields
lo: BytePos
hi: BytePos
ctxt: SyntaxContext
Information about where the macro came from, if this piece of code was created by a macro expansion.
Implementations
impl Span
[src]
pub fn lo(self) -> BytePos
[src]
pub fn new(mut lo: BytePos, mut hi: BytePos, ctxt: SyntaxContext) -> Self
[src]
pub fn with_lo(&self, lo: BytePos) -> Span
[src]
pub fn hi(self) -> BytePos
[src]
pub fn with_hi(&self, hi: BytePos) -> Span
[src]
pub fn ctxt(self) -> SyntaxContext
[src]
pub fn with_ctxt(&self, ctxt: SyntaxContext) -> Span
[src]
pub fn is_dummy(self) -> bool
[src]
Returns true
if this is a dummy span with any hygienic context.
pub fn shrink_to_lo(self) -> Span
[src]
Returns a new span representing an empty span at the beginning of this span
pub fn shrink_to_hi(self) -> Span
[src]
Returns a new span representing an empty span at the end of this span
pub fn substitute_dummy(self, other: Span) -> Span
[src]
Returns self
if self
is not the dummy span, and other
otherwise.
pub fn contains(self, other: Span) -> bool
[src]
Return true if self
fully encloses other
.
pub fn source_equal(self, other: Span) -> bool
[src]
Return true if the spans are equal with regards to the source text.
Use this instead of ==
when either span could be generated code,
and you only care that they point to the same bytes of source text.
pub fn trim_start(self, other: Span) -> Option<Span>
[src]
Returns Some(span)
, where the start is trimmed by the end of other
pub fn to(self, end: Span) -> Span
[src]
Return a Span
that would enclose both self
and end
.
pub fn between(self, end: Span) -> Span
[src]
Return a Span
between the end of self
to the beginning of end
.
pub fn until(self, end: Span) -> Span
[src]
Return a Span
between the beginning of self
to the beginning of
end
.
pub fn from_inner_byte_pos(self, start: usize, end: usize) -> Span
[src]
pub fn apply_mark(self, mark: Mark) -> Span
[src]
pub fn remove_mark(&mut self) -> Mark
[src]
pub fn adjust(&mut self, expansion: Mark) -> Option<Mark>
[src]
pub fn glob_adjust(
&mut self,
expansion: Mark,
glob_ctxt: SyntaxContext
) -> Option<Option<Mark>>
[src]
&mut self,
expansion: Mark,
glob_ctxt: SyntaxContext
) -> Option<Option<Mark>>
pub fn reverse_glob_adjust(
&mut self,
expansion: Mark,
glob_ctxt: SyntaxContext
) -> Option<Option<Mark>>
[src]
&mut self,
expansion: Mark,
glob_ctxt: SyntaxContext
) -> Option<Option<Mark>>
Trait Implementations
impl Clone for Span
[src]
impl Copy for Span
[src]
impl Debug for Span
[src]
impl Default for Span
[src]
impl<'de> Deserialize<'de> for Span
[src]
pub fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Eq for Span
[src]
impl EqIgnoreSpan for Span
[src]
pub fn eq_ignore_span(&self, _: &Self) -> bool
[src]
Always returns true
impl From<Span> for MultiSpan
[src]
impl Hash for Span
[src]
pub fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Ord for Span
[src]
pub fn cmp(&self, other: &Span) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl PartialEq<Span> for Span
[src]
impl PartialOrd<Span> for Span
[src]
pub fn partial_cmp(&self, other: &Span) -> Option<Ordering>
[src]
pub fn lt(&self, other: &Span) -> bool
[src]
pub fn le(&self, other: &Span) -> bool
[src]
pub fn gt(&self, other: &Span) -> bool
[src]
pub fn ge(&self, other: &Span) -> bool
[src]
impl Serialize for Span
[src]
pub fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl Spanned for Span
[src]
impl StructuralEq for Span
[src]
impl StructuralPartialEq for Span
[src]
impl TypeEq for Span
[src]
Auto Trait Implementations
impl RefUnwindSafe for Span
[src]
impl Send for Span
[src]
impl Sync for Span
[src]
impl Unpin for Span
[src]
impl UnwindSafe for Span
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> Erased for T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,