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,