• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use core::cmp::Ordering;
2 
3 /// A line-column pair representing the start or end of a `Span`.
4 ///
5 /// This type is semver exempt and not exposed by default.
6 #[cfg_attr(doc_cfg, doc(cfg(feature = "span-locations")))]
7 #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
8 pub struct LineColumn {
9     /// The 1-indexed line in the source file on which the span starts or ends
10     /// (inclusive).
11     pub line: usize,
12     /// The 0-indexed column (in UTF-8 characters) in the source file on which
13     /// the span starts or ends (inclusive).
14     pub column: usize,
15 }
16 
17 impl Ord for LineColumn {
cmp(&self, other: &Self) -> Ordering18     fn cmp(&self, other: &Self) -> Ordering {
19         self.line
20             .cmp(&other.line)
21             .then(self.column.cmp(&other.column))
22     }
23 }
24 
25 impl PartialOrd for LineColumn {
partial_cmp(&self, other: &Self) -> Option<Ordering>26     fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
27         Some(self.cmp(other))
28     }
29 }
30