Add PartialOrd to Location

This commit is contained in:
Charlie Marsh 2022-09-04 16:31:34 -04:00
parent 83032d412e
commit 307bc46d74

View file

@ -1,7 +1,7 @@
use serde::{Deserialize, Serialize};
/// Sourcecode location.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
pub struct Location {
pub(super) row: u32,
pub(super) column: u32,
@ -59,3 +59,22 @@ impl Location {
self.column = 1;
}
}
#[cfg(test)]
mod tests {
use crate::Location;
#[test]
fn test_gt() {
assert!(Location::new(1, 2) > Location::new(1, 1));
assert!(Location::new(2, 1) > Location::new(1, 1));
assert!(Location::new(2, 1) > Location::new(1, 2));
}
#[test]
fn test_lt() {
assert!(Location::new(1, 1) < Location::new(1, 2));
assert!(Location::new(1, 1) < Location::new(2, 1));
assert!(Location::new(1, 2) < Location::new(2, 1));
}
}