diff --git a/crates/buffer/src/anchor.rs b/crates/buffer/src/anchor.rs index d978b76050..2500e27e2b 100644 --- a/crates/buffer/src/anchor.rs +++ b/crates/buffer/src/anchor.rs @@ -1,6 +1,4 @@ -use crate::Point; - -use super::{Buffer, Content}; +use super::{Buffer, Content, Point}; use anyhow::Result; use std::{ cmp::Ordering, @@ -87,6 +85,14 @@ impl Anchor { } impl AnchorMap { + pub fn version(&self) -> &clock::Global { + &self.version + } + + pub fn len(&self) -> usize { + self.entries.len() + } + pub fn offsets<'a>( &'a self, content: impl Into> + 'a, @@ -106,29 +112,41 @@ impl AnchorMap { .summaries_for_anchors(self) .map(move |(sum, value)| (sum.lines, value)) } - - pub fn version(&self) -> &clock::Global { - &self.version - } } impl AnchorSet { + pub fn version(&self) -> &clock::Global { + &self.0.version + } + + pub fn len(&self) -> usize { + self.0.len() + } + pub fn offsets<'a>( &'a self, content: impl Into> + 'a, ) -> impl Iterator + 'a { - self.0.offsets(content).map(move |(offset, _)| offset) + self.0.offsets(content).map(|(offset, _)| offset) } pub fn points<'a>( &'a self, content: impl Into> + 'a, ) -> impl Iterator + 'a { - self.0.points(content).map(move |(point, _)| point) + self.0.points(content).map(|(point, _)| point) } } impl AnchorRangeMap { + pub fn version(&self) -> &clock::Global { + &self.version + } + + pub fn len(&self) -> usize { + self.entries.len() + } + pub fn from_raw(version: clock::Global, entries: Vec<(Range<(usize, Bias)>, T)>) -> Self { Self { version, entries } } @@ -137,10 +155,6 @@ impl AnchorRangeMap { &self.entries } - pub fn len(&self) -> usize { - self.entries.len() - } - pub fn point_ranges<'a>( &'a self, content: impl Into> + 'a, @@ -160,10 +174,6 @@ impl AnchorRangeMap { .summaries_for_anchor_ranges(self) .map(move |(range, value)| ((range.start.bytes..range.end.bytes), value)) } - - pub fn version(&self) -> &clock::Global { - &self.version - } } impl PartialEq for AnchorRangeMap { @@ -200,6 +210,10 @@ impl AnchorRangeSet { self.0.len() } + pub fn version(&self) -> &clock::Global { + self.0.version() + } + pub fn offset_ranges<'a>( &'a self, content: impl Into> + 'a, @@ -213,10 +227,6 @@ impl AnchorRangeSet { ) -> impl Iterator> + 'a { self.0.point_ranges(content).map(|(range, _)| range) } - - pub fn version(&self) -> &clock::Global { - self.0.version() - } } pub trait AnchorRangeExt {