Struct syntax_pos::FileMap
[−]
[src]
pub struct FileMap { pub name: FileName, pub abs_path: Option<FileName>, pub src: Option<Rc<String>>, pub start_pos: BytePos, pub end_pos: BytePos, pub lines: RefCell<Vec<BytePos>>, pub multibyte_chars: RefCell<Vec<MultiByteChar>>, }
rustc_private
)A single source in the CodeMap.
Fields
name: FileName
rustc_private
)The name of the file that the source came from, source that doesn't
originate from files has names between angle brackets by convention,
e.g. <anon>
abs_path: Option<FileName>
rustc_private
)The absolute path of the file that the source came from.
src: Option<Rc<String>>
rustc_private
)The complete source code
start_pos: BytePos
rustc_private
)The start position of this source in the CodeMap
end_pos: BytePos
rustc_private
)The end position of this source in the CodeMap
lines: RefCell<Vec<BytePos>>
rustc_private
)Locations of lines beginnings in the source code
multibyte_chars: RefCell<Vec<MultiByteChar>>
rustc_private
)Locations of multi-byte characters in the source code
Methods
impl FileMap
[src]
fn next_line(&self, pos: BytePos)
rustc_private
)EFFECT: register a start-of-line offset in the table of line-beginnings. UNCHECKED INVARIANT: these offsets must be added in the right order and must be in the right places; there is shared knowledge about what ends a line between this file and parse.rs WARNING: pos param here is the offset relative to start of CodeMap, and CodeMap will append a newline when adding a filemap without a newline at the end, so the safe way to call this is with value calculated as filemap.start_pos + newline_offset_relative_to_the_start_of_filemap.
fn get_line(&self, line_number: usize) -> Option<&str>
rustc_private
)get a line from the list of pre-computed line-beginnings. line-number here is 0-based.
fn record_multibyte_char(&self, pos: BytePos, bytes: usize)
rustc_private
)fn is_real_file(&self) -> bool
rustc_private
)fn is_imported(&self) -> bool
rustc_private
)fn byte_length(&self) -> u32
rustc_private
)fn count_lines(&self) -> usize
rustc_private
)fn lookup_line(&self, pos: BytePos) -> Option<usize>
rustc_private
)Find the line containing the given position. The return value is the
index into the lines
array of this FileMap, not the 1-based line
number. If the filemap is empty or the position is located before the
first line, None is returned.
fn line_bounds(&self, line_index: usize) -> (BytePos, BytePos)
rustc_private
)Trait Implementations
impl Encodable for FileMap
[src]
fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>
🔬 This is a nightly-only experimental API. (rustc_private
)
deprecated in favor of rustc-serialize on crates.io
impl Decodable for FileMap
[src]
fn decode<D: Decoder>(d: &mut D) -> Result<FileMap, D::Error>
🔬 This is a nightly-only experimental API. (rustc_private
)
deprecated in favor of rustc-serialize on crates.io