From f261d44edb97c63a80c73e1598ca154bff540e93 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Fri, 2 Aug 2024 01:21:51 +0000 Subject: [PATCH] add method to iterate opened database columns Signed-off-by: Jason Volk --- src/database/database.rs | 10 +++++++++- src/database/maps.rs | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/database/database.rs b/src/database/database.rs index 1d7bbc33..c357d50f 100644 --- a/src/database/database.rs +++ b/src/database/database.rs @@ -2,7 +2,12 @@ use std::{ops::Index, sync::Arc}; use conduit::{Result, Server}; -use crate::{cork::Cork, maps, maps::Maps, Engine, Map}; +use crate::{ + cork::Cork, + maps, + maps::{Maps, MapsKey, MapsVal}, + Engine, Map, +}; pub struct Database { pub db: Arc, @@ -30,6 +35,9 @@ impl Database { #[inline] #[must_use] pub fn cork_and_sync(&self) -> Cork { Cork::new(&self.db, true, true) } + + #[inline] + pub fn iter_maps(&self) -> impl Iterator + '_ { self.map.iter() } } impl Index<&str> for Database { diff --git a/src/database/maps.rs b/src/database/maps.rs index de78eaed..0207b4d4 100644 --- a/src/database/maps.rs +++ b/src/database/maps.rs @@ -4,7 +4,9 @@ use conduit::Result; use crate::{Engine, Map}; -pub type Maps = BTreeMap>; +pub type Maps = BTreeMap; +pub(crate) type MapsVal = Arc; +pub(crate) type MapsKey = String; pub(crate) fn open(db: &Arc) -> Result { open_list(db, MAPS) }