Mercurial > lbo > hg > leveldb-rs
changeset 630:bf64ad2d36d1
Merge pull request #38 from hoprnet/feature/no-fs
feature: Hide `PosixDiskEnv` type behind a feature (default enabled)
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Thu, 14 Sep 2023 21:51:34 +0200 |
parents | 2390a37c0086 (current diff) e47c42a5801a (diff) |
children | 685df78c5778 |
files | |
diffstat | 4 files changed, 32 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/Cargo.toml Fri Sep 08 12:49:45 2023 +0200 +++ b/Cargo.toml Thu Sep 14 21:51:34 2023 +0200 @@ -12,19 +12,24 @@ edition = "2018" include = ["src/**/*", "src/*", "Cargo.toml", "LICENSE", "README.md"] +[lib] +crate-type = ["cdylib", "rlib"] + [dependencies] crc = "1.8" integer-encoding = "3.0" -rand = "0.7" +rand = "0.8.5" snap = "1.0" -errno = "0.2" -fs2 = "0.4.3" + +errno = { optional = true, version = "0.2" } +fs2 = {optional = true, version = "0.4.3"} tokio = { optional = true, features = ["rt", "sync"], version = ">= 1.21" } [features] -default = [] +default = ["fs"] async = ["tokio"] +fs = ["errno", "fs2"] [dev-dependencies] time-test = "0.2"
--- a/src/error.rs Fri Sep 08 12:49:45 2023 +0200 +++ b/src/error.rs Thu Sep 14 21:51:34 2023 +0200 @@ -5,7 +5,9 @@ use std::result; use std::sync; +#[cfg(feature = "fs")] use errno; + use snap; /// StatusCode describes various failure modes of database operations. @@ -26,6 +28,7 @@ PermissionDenied, AsyncError, Unknown, + #[cfg(feature = "fs")] Errno(errno::Errno), }
--- a/src/lib.rs Fri Sep 08 12:49:45 2023 +0200 +++ b/src/lib.rs Thu Sep 14 21:51:34 2023 +0200 @@ -24,8 +24,13 @@ #![allow(dead_code)] extern crate crc; + +#[cfg(feature = "fs")] extern crate errno; + +#[cfg(feature = "fs")] extern crate fs2; + extern crate integer_encoding; extern crate rand; extern crate snap; @@ -45,8 +50,10 @@ mod blockhandle; mod cache; mod cmp; + +#[cfg(feature = "fs")] mod disk_env; -mod env; + mod env_common; mod error; mod filter; @@ -73,6 +80,7 @@ mod db_impl; mod db_iter; +pub mod env; pub mod compressor; #[cfg(feature = "async")] @@ -82,8 +90,10 @@ pub use compressor::{Compressor, CompressorId}; pub use db_impl::DB; pub use db_iter::DBIterator; + +#[cfg(feature = "fs")] pub use disk_env::PosixDiskEnv; -pub use env::Env; + pub use error::{Result, Status, StatusCode}; pub use filter::{BloomPolicy, FilterPolicy}; pub use mem_env::MemEnv;
--- a/src/options.rs Fri Sep 08 12:49:45 2023 +0200 +++ b/src/options.rs Thu Sep 14 21:51:34 2023 +0200 @@ -6,7 +6,7 @@ use crate::infolog::{self, Logger}; use crate::mem_env::MemEnv; use crate::types::{share, Shared}; -use crate::{disk_env, Result}; +use crate::Result; use crate::{filter, Status, StatusCode}; use std::default::Default; @@ -48,11 +48,17 @@ pub filter_policy: filter::BoxedFilterPolicy, } +#[cfg(feature = "fs")] +type DefaultEnv = crate::disk_env::PosixDiskEnv; + +#[cfg(not(feature = "fs"))] +type DefaultEnv = crate::mem_env::MemEnv; + impl Default for Options { fn default() -> Options { Options { cmp: Rc::new(Box::new(DefaultCmp)), - env: Rc::new(Box::new(disk_env::PosixDiskEnv::new())), + env: Rc::new(Box::new(DefaultEnv::new())), log: None, create_if_missing: true, error_if_exists: false,