Mercurial > lbo > hg > leveldb-rs
changeset 624:d4fa806e7f6c
Move FS support behind a feature
author | NumberFour8 <lukas.pohanka@inina.net> |
---|---|
date | Fri, 01 Sep 2023 10:43:00 +0200 |
parents | dbf8977e966a |
children | 90a85d60e34f |
files | Cargo.toml src/error.rs src/lib.rs src/options.rs |
diffstat | 4 files changed, 30 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/Cargo.toml Thu Aug 31 08:01:36 2023 +0200 +++ b/Cargo.toml Fri Sep 01 10:43:00 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" 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 Thu Aug 31 08:01:36 2023 +0200 +++ b/src/error.rs Fri Sep 01 10:43:00 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 Thu Aug 31 08:01:36 2023 +0200 +++ b/src/lib.rs Fri Sep 01 10:43:00 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,7 +50,10 @@ mod blockhandle; mod cache; mod cmp; + +#[cfg(feature = "fs")] mod disk_env; + mod env; mod env_common; mod error; @@ -82,7 +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};
--- a/src/options.rs Thu Aug 31 08:01:36 2023 +0200 +++ b/src/options.rs Fri Sep 01 10:43:00 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 CurrentEnv = crate::disk_env::PosixDiskEnv; + +#[cfg(not(feature = "fs"))] +type CurrentEnv = 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(CurrentEnv::new())), log: None, create_if_missing: true, error_if_exists: false,