Add a way to open the database

This commit is contained in:
Olivier 'reivilibre' 2022-03-24 19:40:26 +00:00
parent c19fb15e1c
commit 5cff443d00

View File

@ -2,8 +2,11 @@ use crate::database::raw::{RawTable, RawTableTryBuilder};
use crate::database::wrapped::WrappedTable;
use crate::wrapper::{ByteWrapper, ZeroCopyByteWrapper};
use anyhow::{ensure, Context};
use libmdbx::{DatabaseFlags, Environment, Transaction, TransactionKind, WriteMap, RO, RW};
use libmdbx::{
DatabaseFlags, Environment, EnvironmentFlags, Transaction, TransactionKind, WriteMap, RO, RW,
};
use std::marker::PhantomData;
use std::path::Path;
use std::sync::Arc;
pub struct Env {
@ -11,6 +14,20 @@ pub struct Env {
}
impl Env {
pub fn open(path: &Path) -> anyhow::Result<Env> {
let mut flags = EnvironmentFlags::default();
flags.no_sub_dir = true;
let environment = Environment::new()
.set_max_dbs(256)
.set_flags(flags)
.open(path)?;
Ok(Env {
mdbx_env: Arc::new(environment),
})
}
pub fn open_raw_table<K: ZeroCopyByteWrapper + ?Sized, V: ZeroCopyByteWrapper + ?Sized>(
&self,
name: Option<&str>,