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::database::wrapped::WrappedTable;
|
||||||
use crate::wrapper::{ByteWrapper, ZeroCopyByteWrapper};
|
use crate::wrapper::{ByteWrapper, ZeroCopyByteWrapper};
|
||||||
use anyhow::{ensure, Context};
|
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::marker::PhantomData;
|
||||||
|
use std::path::Path;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
pub struct Env {
|
pub struct Env {
|
||||||
@ -11,6 +14,20 @@ pub struct Env {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl 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>(
|
pub fn open_raw_table<K: ZeroCopyByteWrapper + ?Sized, V: ZeroCopyByteWrapper + ?Sized>(
|
||||||
&self,
|
&self,
|
||||||
name: Option<&str>,
|
name: Option<&str>,
|
||||||
|
Loading…
Reference in New Issue
Block a user