aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src/position.rs
diff options
context:
space:
mode:
Diffstat (limited to 'helix-core/src/position.rs')
-rw-r--r--helix-core/src/position.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/helix-core/src/position.rs b/helix-core/src/position.rs
new file mode 100644
index 00000000..8c82b83b
--- /dev/null
+++ b/helix-core/src/position.rs
@@ -0,0 +1,27 @@
+/// Represents a single point in a text buffer. Zero indexed.
+#[derive(Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
+pub struct Position {
+ pub row: usize,
+ pub col: usize,
+}
+
+impl Position {
+ pub fn new(row: usize, col: usize) -> Self {
+ Self { row, col }
+ }
+
+ pub fn is_zero(self) -> bool {
+ self.row == 0 && self.col == 0
+ }
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+
+ #[test]
+ fn test_ordering() {
+ // (0, 5) is less than (1, 0 w v f)
+ assert!(Position::new(0, 5) < Position::new(1, 0));
+ }
+}