Add a way to open the database
This commit is contained in:
parent
c19fb15e1c
commit
5cff443d00
@ -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>,
|
||||
|
Loading…
Reference in New Issue
Block a user