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