• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #[cfg(feature = "serialization")]
2 use serde::{Deserialize, Serialize};
3 
4 use crate::{ColumnIndex, LineIndex};
5 
6 /// A location in a source file.
7 #[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
8 #[cfg_attr(feature = "serialization", derive(Deserialize, Serialize))]
9 pub struct Location {
10     /// The line index in the source file.
11     pub line: LineIndex,
12     /// The column index in the source file.
13     pub column: ColumnIndex,
14 }
15 
16 impl Location {
17     /// Construct a new location from a line index and a column index.
new(line: impl Into<LineIndex>, column: impl Into<ColumnIndex>) -> Location18     pub fn new(line: impl Into<LineIndex>, column: impl Into<ColumnIndex>) -> Location {
19         Location {
20             line: line.into(),
21             column: column.into(),
22         }
23     }
24 }
25