aboutsummaryrefslogtreecommitdiffstats
path: root/src/document/store.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/document/store.rs')
-rw-r--r--src/document/store.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/document/store.rs b/src/document/store.rs
index f18f2fa..db5ecbc 100644
--- a/src/document/store.rs
+++ b/src/document/store.rs
@@ -650,6 +650,11 @@ fn summary(
Ok(JsonValue::Object(out))
}
+/// Whether `path` holds a map (one, or concurrent ones merged).
+pub(crate) fn is_map(doc: &impl ReadDoc, path: &[String]) -> bool {
+ matches!(resolve_through(doc, path), Ok(Some(Resolved::Maps(_))))
+}
+
/// Keys of the merged map at `path`; empty if it doesn't exist or isn't a map.
pub(crate) fn keys_at(doc: &impl ReadDoc, path: &[String]) -> Result<Vec<String>, StoreError> {
Ok(match resolve_through(doc, path)? {