Skip to content

Commit

Permalink
Merge pull request #38 from hoprnet/feature/no-fs
Browse files Browse the repository at this point in the history
feature: Hide `PosixDiskEnv` type behind a feature (default enabled)
  • Loading branch information
dermesser committed Sep 14, 2023
2 parents c467d3f + 5fe9128 commit 6490981
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 8 deletions.
13 changes: 9 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,24 @@ publish = true
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"
Expand Down
3 changes: 3 additions & 0 deletions src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ use std::io;
use std::result;
use std::sync;

#[cfg(feature = "fs")]
use errno;

use snap;

/// StatusCode describes various failure modes of database operations.
Expand All @@ -26,6 +28,7 @@ pub enum StatusCode {
PermissionDenied,
AsyncError,
Unknown,
#[cfg(feature = "fs")]
Errno(errno::Errno),
}

Expand Down
14 changes: 12 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -45,8 +50,10 @@ mod block_builder;
mod blockhandle;
mod cache;
mod cmp;

#[cfg(feature = "fs")]
mod disk_env;
mod env;

mod env_common;
mod error;
mod filter;
Expand All @@ -73,6 +80,7 @@ mod write_batch;
mod db_impl;
mod db_iter;

pub mod env;
pub mod compressor;

#[cfg(feature = "async")]
Expand All @@ -82,8 +90,10 @@ pub use cmp::{Cmp, DefaultCmp};
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;
Expand Down
10 changes: 8 additions & 2 deletions src/options.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use crate::env::Env;
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;
Expand Down Expand Up @@ -48,11 +48,17 @@ pub struct Options {
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,
Expand Down

0 comments on commit 6490981

Please sign in to comment.