From ee849a9d8806f4fc5b8bde6d22dbe28da9d969d1 Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 31 Oct 2026 03:52:02 +0100 Subject: consistently use resolve_through --- src/document/store.rs | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/document/store.rs b/src/document/store.rs index b698d19..d314a4c 100644 --- a/src/document/store.rs +++ b/src/document/store.rs @@ -433,14 +433,10 @@ fn summary(doc: &AutoCommit, resolved: &Resolved, entries: bool) -> Result Result, StoreError> { - let mut maps = vec![automerge::ROOT]; - for segment in path { - maps = match resolve(doc, &maps, segment, None)? { - Some(Resolved::Maps(next)) => next, - _ => return Ok(Vec::new()), - }; - } - Ok(merged_keys(doc, &maps).into_iter().collect()) + Ok(match resolve_through(doc, path)? { + Some(Resolved::Maps(maps)) => merged_keys(doc, &maps).into_iter().collect(), + _ => Vec::new(), + }) } /// Every concurrent value at `path`, newest first; empty if there is none. Where @@ -450,13 +446,9 @@ pub(crate) fn read_candidates( path: &[String], ) -> Result, StoreError> { let (leaf, parents) = path.split_last().ok_or(StoreError::NotFound)?; - let mut maps = vec![automerge::ROOT]; - for segment in parents { - maps = match resolve(doc, &maps, segment, None)? { - Some(Resolved::Maps(next)) => next, - _ => return Ok(Vec::new()), - }; - } + let Some(Resolved::Maps(maps)) = resolve_through(doc, parents)? else { + return Ok(Vec::new()); + }; candidates(doc, &maps, leaf.as_str())? .into_iter() .map(|(value, id)| match value { -- cgit v1.3.1