Struct source_span::Position [−][src]
Expand description
Position in a source file (line and column).
This holds the line and column position of a character in a source file.
Some operations are available to move position in a file. In partular, the
next method computes the next cursor position after
reading a given char.
Display
The struct implements two different format traits:
fmt::Displaywill format the position asline {line} column {column}fmt::Debugwill format the position as{line}:{column}.
Both of them will display lines and columns starting at 1 even though the
internal representation starts at 0.
Fields
line: usizeLine number, starting at 0.
column: usizeColumn number, starting at 0.
Implementations
Create a new position given a line and column.
Indexes starts at 0.
Return the maximum position.
Example
use source_span::Position; assert_eq!( Position::end(), Position::new(usize::max_value(), usize::max_value()) );
Move to the next column.
Move to the begining of the line.
Move to the position following the given char using the given Metrics.
Control characters
This crate is intended to help with incremental lexing/parsing. Therefore, any control character moving the cursor backward will be ignored: it will be treated as a 0-width character with no semantics.
New lines
The \n character is interpreted with the Unix semantics, as the new
line (NL) character. It will reset the column position to 0 and
move to the next line.
Tabulations
The \t will move the cursor to the next horizontal tab-top.
The length of a tab-stop (in columns) is given by the metrics parameter.
Full-width characters
Note that, as for now, double-width characters of full-width characters are not
supported by the DefaultMetrics.
They will move the cursor by only one column as any other
regular-width character. You are welcome to contribute to handle
them.
Trait Implementations
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
Auto Trait Implementations
impl RefUnwindSafe for Positionimpl UnwindSafe for PositionBlanket Implementations
Mutably borrows from an owned value. Read more