diff --git a/lib/core/core/src/commands/mod.rs b/lib/core/core/src/commands/mod.rs index 44676b1610f5ceb7b03e98b6d040f10d4199b013..d6949a82616660ece3534766c273905be874dc2d 100644 --- a/lib/core/core/src/commands/mod.rs +++ b/lib/core/core/src/commands/mod.rs @@ -26,7 +26,7 @@ use crate::errors::DursCoreError; use crate::DursCore; pub use dbex::*; use durs_conf::DuRsConf; -use durs_dbs_tools::kv_db::KvFileDbHandler; +use durs_dbs_tools::kv_db_old::KvFileDbHandler; pub use durs_network::cli::sync::SyncOpt; pub use keys::KeysOpt; use log::Level; @@ -94,7 +94,7 @@ pub enum DursCommandEnum<T: ExecutableModuleCommand> { impl<T: ExecutableModuleCommand> DursCommand<T> { fn open_bc_db(&self, profile_path: &PathBuf) -> Result<KvFileDbHandler, DursCoreError> { let bc_db_path = durs_conf::get_blockchain_db_path(profile_path.clone()); - durs_dbs_tools::kv_db::KvFileDbHandler::open_db( + durs_dbs_tools::kv_db_old::KvFileDbHandler::open_db( bc_db_path.as_path(), &durs_bc_db_reader::bc_db_schema(), ) diff --git a/lib/core/core/src/lib.rs b/lib/core/core/src/lib.rs index 0ce8e79256bd93780cccb87853443cc45a3eac3d..d582a88cc5d91684cbb7759c2f1b4524f791c804 100644 --- a/lib/core/core/src/lib.rs +++ b/lib/core/core/src/lib.rs @@ -155,7 +155,7 @@ impl DursCore<DuRsConf> { /// Execute core command pub fn execute_core_command<PlugFunc>( - bc_db: durs_dbs_tools::kv_db::KvFileDbHandler, + bc_db: durs_dbs_tools::kv_db_old::KvFileDbHandler, core_command: DursCoreCommand, durs_core_opts: DursCoreOptions, mut plug_modules: PlugFunc, @@ -278,7 +278,7 @@ impl DursCore<DuRsConf> { /// Start durs server pub fn start( mut self, - bc_db: durs_dbs_tools::kv_db::KvFileDbHandler, + bc_db: durs_dbs_tools::kv_db_old::KvFileDbHandler, ) -> Result<(), DursCoreError> { if self.network_modules_count == 0 { fatal_error!( diff --git a/lib/modules-lib/bc-db-reader/src/indexes/certs.rs b/lib/modules-lib/bc-db-reader/src/indexes/certs.rs index 69ebc41dcfb872aaf8b0f1f4c692fd27f2c8660f..237604c83b8cae896ada952e925e5c8ae0970162 100644 --- a/lib/modules-lib/bc-db-reader/src/indexes/certs.rs +++ b/lib/modules-lib/bc-db-reader/src/indexes/certs.rs @@ -24,7 +24,7 @@ use std::collections::HashMap; /// Find certifications that emitted in indicated blocks expiring pub fn find_expire_certs<DB: BcDbInReadTx>( db: &DB, - blocks_expiring: Vec<BlockNumber>, + blocks_expiring: &[BlockNumber], ) -> Result<HashMap<(WotId, WotId), BlockNumber>, DbError> { let mut all_expire_certs = HashMap::new(); for expire_block_id in blocks_expiring { @@ -36,7 +36,7 @@ pub fn find_expire_certs<DB: BcDbInReadTx>( if let Some(value) = entry_result?.1 { if let DbValue::U64(cert) = value { let (source, target) = cert_from_u64(cert); - all_expire_certs.insert((source, target), expire_block_id); + all_expire_certs.insert((source, target), *expire_block_id); } else { return Err(DbError::DBCorrupted); } diff --git a/lib/modules-lib/bc-db-reader/src/indexes/identities.rs b/lib/modules-lib/bc-db-reader/src/indexes/identities.rs index 45f9310078f1aba5319b43741f696b17f94e001a..3a8ef7e097eeabe1f63020999b8d957a953c2215 100644 --- a/lib/modules-lib/bc-db-reader/src/indexes/identities.rs +++ b/lib/modules-lib/bc-db-reader/src/indexes/identities.rs @@ -237,7 +237,7 @@ mod test { use dubp_common_doc::Blockstamp; use dup_crypto_tests_tools::mocks::pubkey; use durs_common_tests_tools::collections::slice_same_elems; - use durs_dbs_tools::kv_db::KvFileDbHandler; + use durs_dbs_tools::kv_db_old::KvFileDbHandler; fn gen_mock_dal_idty(pubkey: PubKey, created_block_id: BlockNumber) -> IdentityDb { IdentityDb { diff --git a/lib/modules-lib/bc-db-reader/src/lib.rs b/lib/modules-lib/bc-db-reader/src/lib.rs index 7a0f0d271c1c56b9bec59c341f9d3850569ee215..7b63de381ba6fd9f4e4eef1bbc36d6be1df57258 100644 --- a/lib/modules-lib/bc-db-reader/src/lib.rs +++ b/lib/modules-lib/bc-db-reader/src/lib.rs @@ -37,7 +37,7 @@ pub mod paging; pub mod tools; pub mod traits; -pub use durs_dbs_tools::kv_db::{ +pub use durs_dbs_tools::kv_db_old::{ from_db_value, KvFileDbRead as DbReadable, KvFileDbReader as Reader, KvFileDbRoHandler as BcDbRo, KvFileDbSchema, KvFileDbStoreType, KvFileDbValue as DbValue, Readable as DbReader, @@ -111,7 +111,7 @@ impl<'r, 'db: 'r, DB> durs_common_tools::traits::NotMock for BcDbWithReaderStruc pub mod tests { use super::*; - use durs_dbs_tools::kv_db::KvFileDbHandler; + use durs_dbs_tools::kv_db_old::KvFileDbHandler; use tempfile::tempdir; #[inline] diff --git a/lib/modules-lib/bc-db-reader/src/traits.rs b/lib/modules-lib/bc-db-reader/src/traits.rs index 06e4ecc773b44eca8017f01af5ae7126516c340e..6c70fa1c4de1d21935b03d8be79def8ed14877d5 100644 --- a/lib/modules-lib/bc-db-reader/src/traits.rs +++ b/lib/modules-lib/bc-db-reader/src/traits.rs @@ -34,7 +34,7 @@ where fn r<D, F>(&self, f: F) -> Result<D, DbError> where DB: DbReadable, - F: FnOnce(&BcDbWithReaderStruct<DB>) -> Result<D, DbError>; + F: Fn(&BcDbWithReaderStruct<DB>) -> Result<D, DbError>; } impl<DB> BcDbRead<DB> for DB @@ -44,7 +44,7 @@ where fn r<D, F>(&self, f: F) -> Result<D, DbError> where DB: DbReadable, - F: FnOnce(&BcDbWithReaderStruct<DB>) -> Result<D, DbError>, + F: Fn(&BcDbWithReaderStruct<DB>) -> Result<D, DbError>, { self.read(|r| f(&BcDbWithReaderStruct { db: self, r })) } @@ -61,7 +61,7 @@ pub trait BcDbWithReader { #[cfg(feature = "mock")] impl<'a> BcDbWithReader for MockBcDbInReadTx { type DB = crate::BcDbRo; - type R = durs_dbs_tools::kv_db::MockKvFileDbReader; + type R = durs_dbs_tools::kv_db_old::MockKvFileDbReader; fn db(&self) -> &Self::DB { unreachable!() diff --git a/lib/modules/blockchain/bc-db-writer/src/lib.rs b/lib/modules/blockchain/bc-db-writer/src/lib.rs index 853291e68a84ab70e4ca76ffa51dbcf756598a25..b48b1570a8fdfbdb9f72c8de39df896d57216a03 100644 --- a/lib/modules/blockchain/bc-db-writer/src/lib.rs +++ b/lib/modules/blockchain/bc-db-writer/src/lib.rs @@ -37,7 +37,7 @@ pub mod current_metadata; pub mod indexes; pub mod writers; -pub use durs_dbs_tools::kv_db::{ +pub use durs_dbs_tools::kv_db_old::{ KvFileDbHandler, KvFileDbRead as DbReadable, KvFileDbRoHandler, KvFileDbSchema, KvFileDbStoreType, KvFileDbValue, KvFileDbWriter as DbWriter, }; diff --git a/lib/modules/blockchain/blockchain/src/dubp.rs b/lib/modules/blockchain/blockchain/src/dubp.rs index 3f209689ea8c429ce270e41a8e174454f1bdaa79..e08cd6dda27bd18e41014152b91841b65d695bb4 100644 --- a/lib/modules/blockchain/blockchain/src/dubp.rs +++ b/lib/modules/blockchain/blockchain/src/dubp.rs @@ -90,7 +90,7 @@ fn treat_chainable_block( let blocks_expiring = Vec::with_capacity(0); // TODO let expire_certs = durs_bc_db_reader::indexes::certs::find_expire_certs( &BcDbRwWithWriter { db, w }, - blocks_expiring, + &blocks_expiring, )?; // If we're in block genesis, get the currency parameters diff --git a/lib/modules/blockchain/blockchain/src/fork/fork_algo.rs b/lib/modules/blockchain/blockchain/src/fork/fork_algo.rs index a8f58d27f27b0748756317d14b8e8239b36149f3..e7dd9f761d468a8d80707718b678d635e57509e4 100644 --- a/lib/modules/blockchain/blockchain/src/fork/fork_algo.rs +++ b/lib/modules/blockchain/blockchain/src/fork/fork_algo.rs @@ -224,7 +224,7 @@ mod tests { ]), db.read(|r| fork_resolution_algo( &BcDbRwWithReader { db: &db, r }, - &mut fork_tree, + &fork_tree, fork_window_size, current_blockstamp, &invalid_blocks @@ -256,7 +256,7 @@ mod tests { Some(new_main_blocks.iter().map(|b| b.blockstamp()).collect()), db.read(|r| fork_resolution_algo( &BcDbRwWithReader { db: &db, r }, - &mut fork_tree, + &fork_tree, fork_window_size, current_blockstamp, &invalid_blocks diff --git a/lib/modules/blockchain/blockchain/src/requests/received.rs b/lib/modules/blockchain/blockchain/src/requests/received.rs index be35e86fea8c9f63493b7af2d2846d449a0a5240..9f6c841838a3f6eec2eac7065daf4003fb2a7774 100644 --- a/lib/modules/blockchain/blockchain/src/requests/received.rs +++ b/lib/modules/blockchain/blockchain/src/requests/received.rs @@ -148,12 +148,12 @@ pub fn receive_req( bc.db() .r(|db_r| { Ok(pubkeys - .into_iter() + .iter() .map(|p| { ( - p, + *p, durs_bc_db_reader::indexes::identities::get_uid( - db_r, &p, + db_r, p, ) .unwrap_or(None), ) diff --git a/lib/modules/blockchain/blockchain/src/sync/apply/mod.rs b/lib/modules/blockchain/blockchain/src/sync/apply/mod.rs index d4e59ecf600f5b1a27d426ce26f3b7793917f4e1..0d8b0f2b2eaca6319de2be2b0b4d3a2dede119fb 100644 --- a/lib/modules/blockchain/blockchain/src/sync/apply/mod.rs +++ b/lib/modules/blockchain/blockchain/src/sync/apply/mod.rs @@ -97,7 +97,7 @@ impl BlockApplicator { let expire_certs = if let Some(db) = self.db.take() { let expire_certs = db .r(|db_r| { - durs_bc_db_reader::indexes::certs::find_expire_certs(db_r, blocks_expiring) + durs_bc_db_reader::indexes::certs::find_expire_certs(db_r, &blocks_expiring) }) .expect("find_expire_certs() : DbError"); self.db = Some(db); diff --git a/lib/modules/gva/src/schema.rs b/lib/modules/gva/src/schema.rs index efb63e3ac8e7ab098e9e5ab73bbc0607fa77655d..3d968b842cee23284e4df83c4d543c692fd149b0 100644 --- a/lib/modules/gva/src/schema.rs +++ b/lib/modules/gva/src/schema.rs @@ -101,8 +101,8 @@ impl QueryFields for Query { exec_in_db_transaction!(blocks( executor, trail, - paging_opt, - block_interval_opt, + paging_opt.as_ref(), + block_interval_opt.as_ref(), step as usize, sort_order )) diff --git a/lib/modules/gva/src/schema/inputs/block_interval.rs b/lib/modules/gva/src/schema/inputs/block_interval.rs index ba70c065653818e61b69f6f8d2aff8c0b0474437..57cb7c7da01bc54295a466c53fdf07fa0df4bbed 100644 --- a/lib/modules/gva/src/schema/inputs/block_interval.rs +++ b/lib/modules/gva/src/schema/inputs/block_interval.rs @@ -29,7 +29,7 @@ pub struct FilledBlockInterval { impl FilledBlockInterval { pub(crate) fn new( - block_interval_opt: Option<BlockInterval>, + block_interval_opt: Option<&BlockInterval>, current_block_number_opt: Option<BlockNumber>, ) -> Self { let current_block_number = current_block_number_opt.unwrap_or(BlockNumber(0)).0 as usize; @@ -120,7 +120,7 @@ mod tests { assert_eq! { 500..=750, - FilledBlockInterval::new(Some(BlockInterval { + FilledBlockInterval::new(Some(&BlockInterval { from: Some(500), to: None, }), Some(BlockNumber(750))).get_range() @@ -128,7 +128,7 @@ mod tests { assert_eq! { 500..=700, - FilledBlockInterval::new(Some(BlockInterval { + FilledBlockInterval::new(Some(&BlockInterval { from: Some(500), to: Some(700), }), Some(BlockNumber(750))).get_range() diff --git a/lib/modules/gva/src/schema/inputs/paging.rs b/lib/modules/gva/src/schema/inputs/paging.rs index a756b7e707fdb16788f81f477c51812a48b5813d..04934a3e02beed1908a9dd8950e5e1b386ac05b7 100644 --- a/lib/modules/gva/src/schema/inputs/paging.rs +++ b/lib/modules/gva/src/schema/inputs/paging.rs @@ -35,11 +35,14 @@ impl Default for FilledPaging { } } -impl From<Option<Paging>> for FilledPaging { - fn from(paging_opt: Option<Paging>) -> Self { +impl From<Option<&Paging>> for FilledPaging { + fn from(paging_opt: Option<&Paging>) -> Self { if let Some(paging) = paging_opt { FilledPaging { - page_number: paging.page_number.unwrap_or(DEFAULT_PAGE_NUMBER_I32) as isize, + page_number: paging + .page_number + .clone() + .unwrap_or(DEFAULT_PAGE_NUMBER_I32) as isize, page_size: if let Some(page_size) = paging.page_size { if page_size < MIN_PAGE_SIZE { MIN_PAGE_SIZE as usize @@ -115,7 +118,7 @@ mod tests { page_number: 0, page_size: 10, }, - FilledPaging::from(Some(Paging { + FilledPaging::from(Some(&Paging { page_number: None, page_size: Some(10) })), @@ -125,7 +128,7 @@ mod tests { page_number: 1, page_size: 50, }, - FilledPaging::from(Some(Paging { + FilledPaging::from(Some(&Paging { page_number: Some(1), page_size: None })), @@ -135,7 +138,7 @@ mod tests { page_number: 1, page_size: 10, }, - FilledPaging::from(Some(Paging { + FilledPaging::from(Some(&Paging { page_number: Some(1), page_size: Some(10) })), diff --git a/lib/modules/gva/src/schema/queries/blocks.rs b/lib/modules/gva/src/schema/queries/blocks.rs index d2bdb99795187f6e3659a832aa866a645ba902bc..467a027fd19f62d2d66198d9a4610346ab2b9117 100644 --- a/lib/modules/gva/src/schema/queries/blocks.rs +++ b/lib/modules/gva/src/schema/queries/blocks.rs @@ -28,8 +28,8 @@ use juniper_from_schema::{QueryTrail, Walked}; pub(crate) fn execute<DB: BcDbInReadTx>( db: &DB, trail: &QueryTrail<'_, BlocksPage, Walked>, - paging_opt: Option<Paging>, - block_interval_opt: Option<BlockInterval>, + paging_opt: Option<&Paging>, + block_interval_opt: Option<&BlockInterval>, step: usize, sort_order: SortOrder, ) -> Result<BlocksPage, DbError> { diff --git a/lib/tools/dbs-tools/src/kv_db.rs b/lib/tools/dbs-tools/src/kv_db.rs deleted file mode 100644 index ac1afbfd785580a53c4ccabf2cc3d42184fcdfe9..0000000000000000000000000000000000000000 --- a/lib/tools/dbs-tools/src/kv_db.rs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (C) 2017-2019 The AXIOM TEAM Association. -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. - -//! Define Key-Value database - -mod file; - -#[cfg(feature = "mock")] -pub use file::MockKvFileDbReader; -pub use file::{ - from_db_value, KvFileDbHandler, KvFileDbRead, KvFileDbReader, KvFileDbRoHandler, - KvFileDbSchema, KvFileDbStoreType, KvFileDbWriter, -}; -pub use rkv::{ - store::multi::Iter, IntegerStore, MultiIntegerStore, MultiStore, - OwnedValue as KvFileDbOwnedValue, Readable, SingleStore, Value as KvFileDbValue, -}; diff --git a/lib/tools/dbs-tools/src/kv_db_old.rs b/lib/tools/dbs-tools/src/kv_db_old.rs new file mode 100644 index 0000000000000000000000000000000000000000..5d4b06825dd06ba8555f317f554e224e3f661d6e --- /dev/null +++ b/lib/tools/dbs-tools/src/kv_db_old.rs @@ -0,0 +1,15 @@ +/////////////////////// +/// OLD A SUPPRIMER /// +/////////////////////// +mod file; + +#[cfg(feature = "mock")] +pub use file::MockKvFileDbReader; +pub use file::{ + from_db_value, KvFileDbHandler, KvFileDbRead, KvFileDbReader, KvFileDbRoHandler, + KvFileDbSchema, KvFileDbStoreType, KvFileDbWriter, +}; +pub use rkv::{ + store::multi::Iter, IntegerStore, MultiIntegerStore, MultiStore, + OwnedValue as KvFileDbOwnedValue, Readable, SingleStore, Value as KvFileDbValue, +}; diff --git a/lib/tools/dbs-tools/src/kv_db/file.rs b/lib/tools/dbs-tools/src/kv_db_old/file.rs similarity index 98% rename from lib/tools/dbs-tools/src/kv_db/file.rs rename to lib/tools/dbs-tools/src/kv_db_old/file.rs index fa0a23e572348796b59a0ef0706f46c84d8539b6..24ba05bb9f85283b63b2b94e8cd9decb5eb05d5d 100644 --- a/lib/tools/dbs-tools/src/kv_db/file.rs +++ b/lib/tools/dbs-tools/src/kv_db_old/file.rs @@ -198,7 +198,7 @@ pub trait KvFileDbRead: Sized { /// Read datas in transaction database fn read<F, R>(&self, f: F) -> Result<R, DbError> where - F: FnOnce(KvFileDbReader) -> Result<R, DbError>; + F: Fn(KvFileDbReader) -> Result<R, DbError>; } impl KvFileDbRead for KvFileDbRoHandler { @@ -221,7 +221,7 @@ impl KvFileDbRead for KvFileDbRoHandler { #[inline] fn read<F, R>(&self, f: F) -> Result<R, DbError> where - F: FnOnce(KvFileDbReader) -> Result<R, DbError>, + F: Fn(KvFileDbReader) -> Result<R, DbError>, { self.0.read(f) } @@ -320,7 +320,7 @@ impl KvFileDbRead for KvFileDbHandler { } fn read<F, R>(&self, f: F) -> Result<R, DbError> where - F: FnOnce(KvFileDbReader) -> Result<R, DbError>, + F: Fn(KvFileDbReader) -> Result<R, DbError>, { Ok(f(KvFileDbReader(&self.arc_clone().read()?.read()?))?) } diff --git a/lib/tools/dbs-tools/src/lib.rs b/lib/tools/dbs-tools/src/lib.rs index df67c79c1f660fc774137cf5c69a6f95ee7e52e8..28e0af247733e1b3f8ace8eb9dd28dd34b176407 100644 --- a/lib/tools/dbs-tools/src/lib.rs +++ b/lib/tools/dbs-tools/src/lib.rs @@ -31,7 +31,8 @@ mod errors; mod free_struct_db; -pub mod kv_db; +/// module a supprimer +pub mod kv_db_old; pub use errors::DbError; pub use free_struct_db::{open_free_struct_file_db, open_free_struct_memory_db, BinFreeStructDb};