diff --git a/core/src/location.rs b/core/src/location.rs index fedcdcf..73d6ec8 100644 --- a/core/src/location.rs +++ b/core/src/location.rs @@ -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)); + } +}