pub struct Span { /* private fields */ }
Expand description
A range of text within a CodeMap.
Implementations§
Source§impl Span
impl Span
Sourcepub const fn subspan(&self, begin: u64, end: u64) -> Span
pub const fn subspan(&self, begin: u64, end: u64) -> Span
Makes a span from offsets relative to the start of this span.
§Panics
- If
end < begin
- If
end
is beyond the length of the span
Examples found in repository?
examples/simple.rs (line 18)
7fn main() {
8 let file = r#"
9pub fn look_up_pos(&self, pos: Pos) -> Loc {
10 let file = self.find_file(pos);
11 let position = file.find_line_col(pos);
12 Loc { file, position }
13}
14"#;
15
16 let mut codemap = CodeMap::new();
17 let file_span = codemap.add_file(DefaultFileData::new("test.rs".to_owned(), file.to_owned())).span;
18 let fn_span = file_span.subspan(8, 19);
19 let ret_span = file_span.subspan(40, 43);
20 let var_span = file_span.subspan(54, 58);
21
22 let sl = SpanLabel { span: fn_span, style: SpanStyle::Primary, label:Some("function name".to_owned()) };
23 let sl2 = SpanLabel { span: ret_span, style: SpanStyle::Primary, label:Some("returns".to_owned()) };
24 let d1 = Diagnostic { level:Level::Error, message:"Test error".to_owned(), code:Some("C000".to_owned()), spans: vec![sl, sl2] };
25
26 let sl3 = SpanLabel { span: var_span, style: SpanStyle::Primary, label:Some("variable".to_owned()) };
27 let d2 = Diagnostic { level:Level::Warning, message:"Test warning".to_owned(), code:Some("W000".to_owned()), spans: vec![sl3] };
28
29 let d3 = Diagnostic { level: Level::Help, message:"Help message".to_owned(), code: None, spans: vec![] };
30
31 let mut emitter = Emitter::stderr(ColorConfig::Auto, Some(&codemap));
32 emitter.emit(&[d1, d2, d3]);
33}
Sourcepub const fn contains(&self, other: Span) -> bool
pub const fn contains(&self, other: Span) -> bool
Checks if a span is contained within this span.
Trait Implementations§
impl Copy for Span
impl Eq for Span
impl StructuralPartialEq for Span
Auto Trait Implementations§
impl Freeze for Span
impl RefUnwindSafe for Span
impl Send for Span
impl Sync for Span
impl Unpin for Span
impl UnwindSafe for Span
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