From 8ddda286e29945fec1c490efae079f28927128ef Mon Sep 17 00:00:00 2001 From: michaelvlach Date: Fri, 18 Nov 2022 12:31:48 +0100 Subject: [PATCH 1/2] rename serialize to old_serialize --- src/agdb/collections/dictionary.rs | 2 +- src/agdb/collections/dictionary/dictionary_data.rs | 2 +- src/agdb/collections/dictionary/dictionary_data_memory.rs | 2 +- src/agdb/collections/dictionary/dictionary_data_storage.rs | 2 +- .../collections/dictionary/dictionary_data_storage_indexes.rs | 2 +- src/agdb/collections/dictionary/dictionary_impl.rs | 2 +- src/agdb/collections/dictionary/dictionary_index.rs | 2 +- src/agdb/collections/dictionary/dictionary_value.rs | 2 +- src/agdb/collections/map/map_impl.rs | 2 +- src/agdb/collections/map_common.rs | 2 +- src/agdb/collections/map_common/map_data.rs | 2 +- src/agdb/collections/map_common/map_data_memory.rs | 2 +- src/agdb/collections/map_common/map_data_storage.rs | 2 +- src/agdb/collections/map_common/map_iterator.rs | 2 +- src/agdb/collections/map_common/map_value.rs | 2 +- src/agdb/collections/map_common/map_value_state.rs | 2 +- src/agdb/collections/multi_map.rs | 2 +- src/agdb/collections/multi_map/multi_map_impl.rs | 2 +- src/agdb/collections/storage_dictionary.rs | 2 +- src/agdb/collections/storage_map.rs | 2 +- src/agdb/collections/storage_multi_map.rs | 2 +- src/agdb/collections/storage_vec.rs | 2 +- src/agdb/collections/vec/storage_vec_iterator.rs | 2 +- src/agdb/db/db_float.rs | 2 +- src/agdb/db/db_index.rs | 2 +- src/agdb/db/db_value.rs | 2 +- src/agdb/graph/graph_data_storage_indexes.rs | 2 +- src/agdb/storage.rs | 4 ++-- src/agdb/storage/storage_file.rs | 2 +- src/agdb/storage/storage_impl.rs | 2 +- src/agdb/storage/storage_index.rs | 2 +- src/agdb/storage/storage_record.rs | 2 +- src/agdb/storage/write_ahead_log.rs | 2 +- src/agdb/test_utilities/collided_value.rs | 2 +- src/agdb/utilities.rs | 2 +- src/agdb/utilities/{serialize.rs => old_serialize.rs} | 0 src/agdb/utilities/partial_serialize.rs | 2 +- 37 files changed, 37 insertions(+), 37 deletions(-) rename src/agdb/utilities/{serialize.rs => old_serialize.rs} (100%) diff --git a/src/agdb/collections/dictionary.rs b/src/agdb/collections/dictionary.rs index 6a0dcd37c..635860468 100644 --- a/src/agdb/collections/dictionary.rs +++ b/src/agdb/collections/dictionary.rs @@ -9,7 +9,7 @@ mod dictionary_data_memory; use self::dictionary_data_memory::DictionaryDataMemory; use self::dictionary_impl::DictionaryImpl; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::marker::PhantomData; diff --git a/src/agdb/collections/dictionary/dictionary_data.rs b/src/agdb/collections/dictionary/dictionary_data.rs index ced870e29..19110c560 100644 --- a/src/agdb/collections/dictionary/dictionary_data.rs +++ b/src/agdb/collections/dictionary/dictionary_data.rs @@ -1,7 +1,7 @@ use super::dictionary_index::DictionaryIndex; use super::dictionary_value::DictionaryValue; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; pub trait DictionaryData diff --git a/src/agdb/collections/dictionary/dictionary_data_memory.rs b/src/agdb/collections/dictionary/dictionary_data_memory.rs index 88e456a7d..2a5777c94 100644 --- a/src/agdb/collections/dictionary/dictionary_data_memory.rs +++ b/src/agdb/collections/dictionary/dictionary_data_memory.rs @@ -3,7 +3,7 @@ use super::dictionary_index::DictionaryIndex; use super::dictionary_value::DictionaryValue; use crate::collections::multi_map::MultiMap; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; pub struct DictionaryDataMemory diff --git a/src/agdb/collections/dictionary/dictionary_data_storage.rs b/src/agdb/collections/dictionary/dictionary_data_storage.rs index eea064724..689c678ed 100644 --- a/src/agdb/collections/dictionary/dictionary_data_storage.rs +++ b/src/agdb/collections/dictionary/dictionary_data_storage.rs @@ -4,7 +4,7 @@ use crate::db::db_error::DbError; use crate::storage::storage_file::StorageFile; use crate::storage::storage_index::StorageIndex; use crate::storage::OldStorage; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::cell::RefCell; use std::rc::Rc; diff --git a/src/agdb/collections/dictionary/dictionary_data_storage_indexes.rs b/src/agdb/collections/dictionary/dictionary_data_storage_indexes.rs index 6192cbfbb..c7cfa8990 100644 --- a/src/agdb/collections/dictionary/dictionary_data_storage_indexes.rs +++ b/src/agdb/collections/dictionary/dictionary_data_storage_indexes.rs @@ -1,6 +1,6 @@ use crate::db::db_error::DbError; use crate::storage::storage_index::StorageIndex; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use std::mem::size_of; pub(crate) struct DictionaryDataStorageIndexes { diff --git a/src/agdb/collections/dictionary/dictionary_impl.rs b/src/agdb/collections/dictionary/dictionary_impl.rs index 835f693e9..6b6e8ef51 100644 --- a/src/agdb/collections/dictionary/dictionary_impl.rs +++ b/src/agdb/collections/dictionary/dictionary_impl.rs @@ -2,7 +2,7 @@ use super::dictionary_data::DictionaryData; use super::dictionary_index::DictionaryIndex; use super::dictionary_value::DictionaryValue; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::marker::PhantomData; diff --git a/src/agdb/collections/dictionary/dictionary_index.rs b/src/agdb/collections/dictionary/dictionary_index.rs index 4a62aed4c..6cc45af50 100644 --- a/src/agdb/collections/dictionary/dictionary_index.rs +++ b/src/agdb/collections/dictionary/dictionary_index.rs @@ -1,5 +1,5 @@ use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; #[derive(Clone, Debug, Default, Eq, PartialEq)] pub struct DictionaryIndex { diff --git a/src/agdb/collections/dictionary/dictionary_value.rs b/src/agdb/collections/dictionary/dictionary_value.rs index 21339eeda..a4c634a92 100644 --- a/src/agdb/collections/dictionary/dictionary_value.rs +++ b/src/agdb/collections/dictionary/dictionary_value.rs @@ -1,5 +1,5 @@ use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; #[derive(Clone, Default)] diff --git a/src/agdb/collections/map/map_impl.rs b/src/agdb/collections/map/map_impl.rs index 42b124130..800302018 100644 --- a/src/agdb/collections/map/map_impl.rs +++ b/src/agdb/collections/map/map_impl.rs @@ -3,7 +3,7 @@ use crate::collections::map_common::map_iterator::MapIterator; use crate::collections::map_common::map_value_state::MapValueState; use crate::collections::map_common::MapCommon; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::collections::HashMap; use std::hash::Hash; diff --git a/src/agdb/collections/map_common.rs b/src/agdb/collections/map_common.rs index c13c78c43..33b5ab6be 100644 --- a/src/agdb/collections/map_common.rs +++ b/src/agdb/collections/map_common.rs @@ -10,7 +10,7 @@ use self::map_iterator::MapIterator; use self::map_value::MapValue; use self::map_value_state::MapValueState; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::cmp::max; use std::hash::Hash; diff --git a/src/agdb/collections/map_common/map_data.rs b/src/agdb/collections/map_common/map_data.rs index 253493ed5..199596f7e 100644 --- a/src/agdb/collections/map_common/map_data.rs +++ b/src/agdb/collections/map_common/map_data.rs @@ -1,7 +1,7 @@ use super::map_value::MapValue; use super::map_value_state::MapValueState; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::hash::Hash; diff --git a/src/agdb/collections/map_common/map_data_memory.rs b/src/agdb/collections/map_common/map_data_memory.rs index 67004d4d2..67e91aaed 100644 --- a/src/agdb/collections/map_common/map_data_memory.rs +++ b/src/agdb/collections/map_common/map_data_memory.rs @@ -2,7 +2,7 @@ use super::map_data::MapData; use super::map_value::MapValue; use super::map_value_state::MapValueState; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::hash::Hash; use std::mem::take; diff --git a/src/agdb/collections/map_common/map_data_storage.rs b/src/agdb/collections/map_common/map_data_storage.rs index 27812bd86..e0747d05d 100644 --- a/src/agdb/collections/map_common/map_data_storage.rs +++ b/src/agdb/collections/map_common/map_data_storage.rs @@ -4,7 +4,7 @@ use super::map_value_state::MapValueState; use crate::db::db_error::DbError; use crate::storage::storage_index::StorageIndex; use crate::storage::OldStorage; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::cell::RefCell; use std::hash::Hash; diff --git a/src/agdb/collections/map_common/map_iterator.rs b/src/agdb/collections/map_common/map_iterator.rs index c383ae98d..6b084c995 100644 --- a/src/agdb/collections/map_common/map_iterator.rs +++ b/src/agdb/collections/map_common/map_iterator.rs @@ -1,6 +1,6 @@ use super::map_data::MapData; use super::map_value_state::MapValueState; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::hash::Hash; use std::marker::PhantomData; diff --git a/src/agdb/collections/map_common/map_value.rs b/src/agdb/collections/map_common/map_value.rs index 9bd46c1e2..f5e9251e0 100644 --- a/src/agdb/collections/map_common/map_value.rs +++ b/src/agdb/collections/map_common/map_value.rs @@ -1,6 +1,6 @@ use super::map_value_state::MapValueState; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; #[derive(Clone, Debug, Default, Eq, PartialEq)] pub struct MapValue diff --git a/src/agdb/collections/map_common/map_value_state.rs b/src/agdb/collections/map_common/map_value_state.rs index 764eb9a75..c851f8559 100644 --- a/src/agdb/collections/map_common/map_value_state.rs +++ b/src/agdb/collections/map_common/map_value_state.rs @@ -1,5 +1,5 @@ use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use std::mem::size_of; #[derive(Clone, Default, Debug, Eq, PartialEq)] diff --git a/src/agdb/collections/multi_map.rs b/src/agdb/collections/multi_map.rs index be320a938..660000fc8 100644 --- a/src/agdb/collections/multi_map.rs +++ b/src/agdb/collections/multi_map.rs @@ -3,7 +3,7 @@ pub mod multi_map_impl; use self::multi_map_impl::MultiMapImpl; use super::map_common::map_data_memory::MapDataMemory; use super::map_common::MapCommon; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::hash::Hash; diff --git a/src/agdb/collections/multi_map/multi_map_impl.rs b/src/agdb/collections/multi_map/multi_map_impl.rs index 576aaf56b..6c4a8fec9 100644 --- a/src/agdb/collections/multi_map/multi_map_impl.rs +++ b/src/agdb/collections/multi_map/multi_map_impl.rs @@ -3,7 +3,7 @@ use crate::collections::map_common::map_data::MapData; use crate::collections::map_common::map_iterator::MapIterator; use crate::collections::map_common::map_value_state::MapValueState; use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::hash::Hash; diff --git a/src/agdb/collections/storage_dictionary.rs b/src/agdb/collections/storage_dictionary.rs index 6be01707b..89616af78 100644 --- a/src/agdb/collections/storage_dictionary.rs +++ b/src/agdb/collections/storage_dictionary.rs @@ -9,7 +9,7 @@ use crate::db::db_error::DbError; use crate::storage::storage_file::StorageFile; use crate::storage::storage_index::StorageIndex; use crate::storage::OldStorage; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::cell::RefCell; use std::marker::PhantomData; diff --git a/src/agdb/collections/storage_map.rs b/src/agdb/collections/storage_map.rs index e5a4793e1..5f49d2e03 100644 --- a/src/agdb/collections/storage_map.rs +++ b/src/agdb/collections/storage_map.rs @@ -2,7 +2,7 @@ use crate::db::db_error::DbError; use crate::storage::storage_file::StorageFile; use crate::storage::storage_index::StorageIndex; use crate::storage::OldStorage; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::cell::RefCell; use std::hash::Hash; diff --git a/src/agdb/collections/storage_multi_map.rs b/src/agdb/collections/storage_multi_map.rs index b4f752c1c..0fe7ebb40 100644 --- a/src/agdb/collections/storage_multi_map.rs +++ b/src/agdb/collections/storage_multi_map.rs @@ -7,7 +7,7 @@ use crate::db::db_error::DbError; use crate::storage::storage_file::StorageFile; use crate::storage::storage_index::StorageIndex; use crate::storage::OldStorage; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::cell::RefCell; use std::hash::Hash; diff --git a/src/agdb/collections/storage_vec.rs b/src/agdb/collections/storage_vec.rs index 7cbbc9729..417af3086 100644 --- a/src/agdb/collections/storage_vec.rs +++ b/src/agdb/collections/storage_vec.rs @@ -3,7 +3,7 @@ use crate::db::db_error::DbError; use crate::storage::storage_file::StorageFile; use crate::storage::storage_index::StorageIndex; use crate::storage::OldStorage; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use std::cell::RefCell; use std::cell::RefMut; use std::cmp::max; diff --git a/src/agdb/collections/vec/storage_vec_iterator.rs b/src/agdb/collections/vec/storage_vec_iterator.rs index 2dd5347df..bbf093033 100644 --- a/src/agdb/collections/vec/storage_vec_iterator.rs +++ b/src/agdb/collections/vec/storage_vec_iterator.rs @@ -1,6 +1,6 @@ use crate::collections::storage_vec::StorageVec; use crate::storage::OldStorage; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use std::marker::PhantomData; pub struct StorageVecIterator<'a, T, Data> diff --git a/src/agdb/db/db_float.rs b/src/agdb/db/db_float.rs index 09e6ab834..7d76cf751 100644 --- a/src/agdb/db/db_float.rs +++ b/src/agdb/db/db_float.rs @@ -1,4 +1,4 @@ -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use std::cmp::Ordering; use std::hash::Hash; diff --git a/src/agdb/db/db_index.rs b/src/agdb/db/db_index.rs index c42bd5fe3..586c61d9b 100644 --- a/src/agdb/db/db_index.rs +++ b/src/agdb/db/db_index.rs @@ -1,4 +1,4 @@ -use crate::{utilities::serialize::Serialize, DbError}; +use crate::{utilities::old_serialize::Serialize, DbError}; #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord)] pub struct DbIndex { diff --git a/src/agdb/db/db_value.rs b/src/agdb/db/db_value.rs index 7fece6e83..469c1cb8a 100644 --- a/src/agdb/db/db_value.rs +++ b/src/agdb/db/db_value.rs @@ -1,5 +1,5 @@ use super::db_float::DbFloat; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; use crate::DbError; diff --git a/src/agdb/graph/graph_data_storage_indexes.rs b/src/agdb/graph/graph_data_storage_indexes.rs index fb62b61ff..edebe4c8f 100644 --- a/src/agdb/graph/graph_data_storage_indexes.rs +++ b/src/agdb/graph/graph_data_storage_indexes.rs @@ -1,6 +1,6 @@ use crate::db::db_error::DbError; use crate::storage::storage_index::StorageIndex; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use std::mem::size_of; pub(crate) struct GraphDataStorageIndexes { diff --git a/src/agdb/storage.rs b/src/agdb/storage.rs index b86b42547..ce8a985a5 100644 --- a/src/agdb/storage.rs +++ b/src/agdb/storage.rs @@ -12,8 +12,8 @@ mod write_ahead_log; use self::partial_storage::PartialStorage; use crate::db::db_error::DbError; use crate::storage::storage_index::StorageIndex; -use crate::utilities::serialize::OldSerialize; -use crate::utilities::serialize::Serialize; +use crate::utilities::old_serialize::OldSerialize; +use crate::utilities::old_serialize::Serialize; pub trait OldStorage { fn commit(&mut self) -> Result<(), DbError>; diff --git a/src/agdb/storage/storage_file.rs b/src/agdb/storage/storage_file.rs index 232fed962..5ab049033 100644 --- a/src/agdb/storage/storage_file.rs +++ b/src/agdb/storage/storage_file.rs @@ -33,7 +33,7 @@ mod tests { use crate::storage::storage_index::StorageIndex; use crate::storage::OldStorage; use crate::test_utilities::test_file::TestFile; - use crate::utilities::serialize::OldSerialize; + use crate::utilities::old_serialize::OldSerialize; use std::fs::metadata; #[test] diff --git a/src/agdb/storage/storage_impl.rs b/src/agdb/storage/storage_impl.rs index e5c95a7a7..d1dbd821c 100644 --- a/src/agdb/storage/storage_impl.rs +++ b/src/agdb/storage/storage_impl.rs @@ -4,7 +4,7 @@ use crate::storage::storage_index::StorageIndex; use crate::storage::storage_record::StorageRecord; use crate::storage::write_ahead_log::WriteAheadLogRecord; use crate::storage::OldStorage; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use std::cmp::max; use std::cmp::min; use std::io::SeekFrom; diff --git a/src/agdb/storage/storage_index.rs b/src/agdb/storage/storage_index.rs index 7e055e2eb..bfb8d118c 100644 --- a/src/agdb/storage/storage_index.rs +++ b/src/agdb/storage/storage_index.rs @@ -1,5 +1,5 @@ use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; #[derive(Clone, Debug, Default, Eq, Ord, PartialEq, PartialOrd)] pub struct StorageIndex { diff --git a/src/agdb/storage/storage_record.rs b/src/agdb/storage/storage_record.rs index 9e2b7d6a7..07a8b0edc 100644 --- a/src/agdb/storage/storage_record.rs +++ b/src/agdb/storage/storage_record.rs @@ -1,6 +1,6 @@ use crate::db::db_error::DbError; use crate::storage::storage_index::StorageIndex; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; #[derive(Clone, Debug, Default, Eq, Ord, PartialEq, PartialOrd)] pub struct StorageRecord { diff --git a/src/agdb/storage/write_ahead_log.rs b/src/agdb/storage/write_ahead_log.rs index e9c2f7046..2138f76e1 100644 --- a/src/agdb/storage/write_ahead_log.rs +++ b/src/agdb/storage/write_ahead_log.rs @@ -1,5 +1,5 @@ use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use std::fs::File; use std::fs::OpenOptions; use std::io::Read; diff --git a/src/agdb/test_utilities/collided_value.rs b/src/agdb/test_utilities/collided_value.rs index fd572ab78..73e632bd9 100644 --- a/src/agdb/test_utilities/collided_value.rs +++ b/src/agdb/test_utilities/collided_value.rs @@ -1,5 +1,5 @@ use crate::db::db_error::DbError; -use crate::utilities::serialize::OldSerialize; +use crate::utilities::old_serialize::OldSerialize; use crate::utilities::stable_hash::StableHash; #[derive(Clone, Debug, Default, Eq, PartialEq)] diff --git a/src/agdb/utilities.rs b/src/agdb/utilities.rs index fe221aca6..5974fd712 100644 --- a/src/agdb/utilities.rs +++ b/src/agdb/utilities.rs @@ -1,3 +1,3 @@ +pub mod old_serialize; pub mod partial_serialize; -pub mod serialize; pub mod stable_hash; diff --git a/src/agdb/utilities/serialize.rs b/src/agdb/utilities/old_serialize.rs similarity index 100% rename from src/agdb/utilities/serialize.rs rename to src/agdb/utilities/old_serialize.rs diff --git a/src/agdb/utilities/partial_serialize.rs b/src/agdb/utilities/partial_serialize.rs index 5a94caf61..22480f8ab 100644 --- a/src/agdb/utilities/partial_serialize.rs +++ b/src/agdb/utilities/partial_serialize.rs @@ -1,4 +1,4 @@ -use crate::utilities::serialize::Serialize; +use crate::utilities::old_serialize::Serialize; use crate::DbError; use std::any::type_name; From ce6ae14065574da4b95f4cba86b2e286a2454bcc Mon Sep 17 00:00:00 2001 From: michaelvlach Date: Fri, 18 Nov 2022 12:47:54 +0100 Subject: [PATCH 2/2] Merge serialization traits --- src/agdb/db/db_index.rs | 15 +- src/agdb/storage.rs | 2 +- src/agdb/storage/partial_storage.rs | 22 +- src/agdb/utilities.rs | 2 +- src/agdb/utilities/old_serialize.rs | 155 ------------- .../{partial_serialize.rs => serialize.rs} | 218 +++++++++++++++--- 6 files changed, 210 insertions(+), 204 deletions(-) rename src/agdb/utilities/{partial_serialize.rs => serialize.rs} (57%) diff --git a/src/agdb/db/db_index.rs b/src/agdb/db/db_index.rs index 586c61d9b..2651a86ac 100644 --- a/src/agdb/db/db_index.rs +++ b/src/agdb/db/db_index.rs @@ -1,4 +1,5 @@ -use crate::{utilities::old_serialize::Serialize, DbError}; +use crate::utilities::serialize::{Serialize, SerializeFixed}; +use crate::DbError; #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord)] pub struct DbIndex { @@ -12,11 +13,11 @@ impl DbIndex { } pub fn from_bytes(bytes: &[u8]) -> Result { - if bytes.len() > DbIndex::serialized_size() { + if bytes.len() > DbIndex::fixed_size() { return Err(DbError::from(format!( "DbIndex::from_bytes error: value ({}) too long (>{})", bytes.len(), - DbIndex::serialized_size() + DbIndex::fixed_size() ))); } @@ -51,7 +52,7 @@ impl DbIndex { impl Serialize for DbIndex { fn serialize(&self) -> Vec { let mut bytes = Vec::::new(); - bytes.reserve(Self::serialized_size()); + bytes.reserve(Self::fixed_size()); bytes.extend(self.value.serialize()); bytes.extend(self.meta.serialize()); @@ -61,11 +62,13 @@ impl Serialize for DbIndex { fn deserialize(bytes: &[u8]) -> Result { Ok(DbIndex { value: u64::deserialize(bytes)?, - meta: u64::deserialize(&bytes[u64::serialized_size()..])?, + meta: u64::deserialize(&bytes[u64::fixed_size()..])?, }) } } +impl SerializeFixed for DbIndex {} + impl From for DbIndex { fn from(value: usize) -> Self { Self { @@ -216,7 +219,7 @@ mod tests { original.set_value(1_u64); original.set_meta(2_u64); - let serialized_size = DbIndex::serialized_size(); + let serialized_size = DbIndex::fixed_size(); let mut bytes = original.serialize(); assert_eq!(bytes.len(), serialized_size); diff --git a/src/agdb/storage.rs b/src/agdb/storage.rs index ce8a985a5..05d94a692 100644 --- a/src/agdb/storage.rs +++ b/src/agdb/storage.rs @@ -13,7 +13,7 @@ use self::partial_storage::PartialStorage; use crate::db::db_error::DbError; use crate::storage::storage_index::StorageIndex; use crate::utilities::old_serialize::OldSerialize; -use crate::utilities::old_serialize::Serialize; +use crate::utilities::serialize::Serialize; pub trait OldStorage { fn commit(&mut self) -> Result<(), DbError>; diff --git a/src/agdb/storage/partial_storage.rs b/src/agdb/storage/partial_storage.rs index 8f693ca74..219750b67 100644 --- a/src/agdb/storage/partial_storage.rs +++ b/src/agdb/storage/partial_storage.rs @@ -1,33 +1,25 @@ use super::storage_index::StorageIndex; -use crate::utilities::partial_serialize::PartialSerialize; +use crate::utilities::serialize::Serialize; use crate::DbError; pub trait PartialStorage { fn commit(&mut self) -> Result<(), DbError>; - fn insert(&mut self, value: &T) -> Result; - fn insert_at( + fn insert(&mut self, value: &T) -> Result; + fn insert_at( &mut self, index: &StorageIndex, offset: usize, value: &T, ) -> Result; - fn move_at( + fn move_at( &mut self, index: &StorageIndex, offset: usize, value: &T, ) -> Result<(), DbError>; - fn replace( - &mut self, - index: &StorageIndex, - value: &T, - ) -> Result; - fn value(&self, index: &StorageIndex) -> Result; - fn value_at( - &self, - index: &StorageIndex, - offset: usize, - ) -> Result; + fn replace(&mut self, index: &StorageIndex, value: &T) -> Result; + fn value(&self, index: &StorageIndex) -> Result; + fn value_at(&self, index: &StorageIndex, offset: usize) -> Result; fn resize_value(&mut self, index: &StorageIndex, new_size: u64) -> Result<(), DbError>; fn shrink_to_fit(&mut self) -> Result<(), DbError>; fn size(&mut self) -> Result; diff --git a/src/agdb/utilities.rs b/src/agdb/utilities.rs index 5974fd712..c9bfc8c4b 100644 --- a/src/agdb/utilities.rs +++ b/src/agdb/utilities.rs @@ -1,3 +1,3 @@ pub mod old_serialize; -pub mod partial_serialize; +pub mod serialize; pub mod stable_hash; diff --git a/src/agdb/utilities/old_serialize.rs b/src/agdb/utilities/old_serialize.rs index f86aa601b..ebf7d5df3 100644 --- a/src/agdb/utilities/old_serialize.rs +++ b/src/agdb/utilities/old_serialize.rs @@ -1,161 +1,6 @@ use crate::db::db_error::DbError; use std::mem::size_of; -pub trait Serialize: Sized + Copy + Default { - fn serialized_size() -> usize { - size_of::() - } - - fn serialize(&self) -> Vec; - fn deserialize(bytes: &[u8]) -> Result; -} - -impl Serialize for i64 { - fn serialize(&self) -> Vec { - self.to_le_bytes().to_vec() - } - - fn deserialize(bytes: &[u8]) -> Result { - Ok(Self::from_le_bytes( - bytes - .get(0..Self::serialized_size()) - .ok_or_else(|| DbError::from("i64 deserialization error: out of bounds"))? - .try_into()?, - )) - } -} - -impl Serialize for u64 { - fn serialize(&self) -> Vec { - self.to_le_bytes().to_vec() - } - - fn deserialize(bytes: &[u8]) -> Result { - Ok(Self::from_le_bytes( - bytes - .get(0..Self::serialized_size()) - .ok_or_else(|| DbError::from("u64 deserialization error: out of bounds"))? - .try_into()?, - )) - } -} - -impl Serialize for f64 { - fn serialize(&self) -> Vec { - self.to_le_bytes().to_vec() - } - - fn deserialize(bytes: &[u8]) -> Result { - Ok(Self::from_le_bytes( - bytes - .get(0..Self::serialized_size()) - .ok_or_else(|| DbError::from("f64 deserialization error: out of bounds"))? - .try_into()?, - )) - } -} - -impl Serialize for usize { - fn serialized_size() -> usize { - u64::serialized_size() - } - - fn serialize(&self) -> Vec { - (*self as u64).serialize() - } - - fn deserialize(bytes: &[u8]) -> Result { - let value = u64::deserialize(bytes)?; - Ok(usize::try_from(value)?) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use std::f64::consts::PI; - - #[test] - fn i64() { - let original = -10_i64; - let serialized_size = i64::serialized_size(); - let mut bytes = original.serialize(); - - assert_eq!(bytes.len(), serialized_size); - - bytes.push(0); - let deserialized = i64::deserialize(&bytes).unwrap(); - - assert_eq!(original, deserialized); - } - - #[test] - fn i64_out_of_bounds() { - assert_eq!( - i64::deserialize(&Vec::::new()), - Err(DbError::from("i64 deserialization error: out of bounds")) - ); - } - - #[test] - fn u64() { - let original = 10_u64; - let serialized_size = u64::serialized_size(); - let mut bytes = original.serialize(); - - assert_eq!(bytes.len(), serialized_size); - - bytes.push(0); - let deserialized = u64::deserialize(&bytes).unwrap(); - - assert_eq!(original, deserialized); - } - - #[test] - fn u64_out_of_bounds() { - assert_eq!( - u64::deserialize(&Vec::::new()), - Err(DbError::from("u64 deserialization error: out of bounds")) - ); - } - - #[test] - fn f64() { - let original = -PI; - let serialized_size = f64::serialized_size(); - let mut bytes = original.serialize(); - - assert_eq!(bytes.len(), serialized_size); - - bytes.push(0); - let deserialized = f64::deserialize(&bytes).unwrap(); - - assert_eq!(original, deserialized); - } - - #[test] - fn f64_out_of_bounds() { - assert_eq!( - f64::deserialize(&Vec::::new()), - Err(DbError::from("f64 deserialization error: out of bounds")) - ); - } - - #[test] - fn usize() { - let original: usize = 10; - let serialized_size = usize::serialized_size(); - let mut bytes = original.serialize(); - - assert_eq!(bytes.len(), serialized_size); - - bytes.push(0); - let deserialized = usize::deserialize(&bytes).unwrap(); - - assert_eq!(original, deserialized); - } -} - pub trait OldSerialize: Sized { fn old_deserialize(bytes: &[u8]) -> Result; fn old_serialize(&self) -> Vec; diff --git a/src/agdb/utilities/partial_serialize.rs b/src/agdb/utilities/serialize.rs similarity index 57% rename from src/agdb/utilities/partial_serialize.rs rename to src/agdb/utilities/serialize.rs index 22480f8ab..184162ee7 100644 --- a/src/agdb/utilities/partial_serialize.rs +++ b/src/agdb/utilities/serialize.rs @@ -1,18 +1,91 @@ -use crate::utilities::old_serialize::Serialize; -use crate::DbError; +use crate::db::db_error::DbError; use std::any::type_name; +use std::mem::size_of; -pub trait PartialSerialize: Sized { - fn serialized_size(&self) -> usize; +pub trait Serialize: Sized { fn serialize(&self) -> Vec; fn deserialize(bytes: &[u8]) -> Result; } -impl PartialSerialize for String { - fn serialized_size(&self) -> usize { - usize::serialized_size() + self.len() +pub trait SerializeFixed: Serialize { + fn fixed_size() -> usize { + size_of::() + } +} + +pub trait SerializeDynamic: Serialize { + fn serialized_size(&self) -> usize; +} + +impl Serialize for i64 { + fn serialize(&self) -> Vec { + self.to_le_bytes().to_vec() + } + + fn deserialize(bytes: &[u8]) -> Result { + Ok(Self::from_le_bytes( + bytes + .get(0..Self::fixed_size()) + .ok_or_else(|| DbError::from("i64 deserialization error: out of bounds"))? + .try_into()?, + )) + } +} + +impl SerializeFixed for i64 {} + +impl Serialize for u64 { + fn serialize(&self) -> Vec { + self.to_le_bytes().to_vec() + } + + fn deserialize(bytes: &[u8]) -> Result { + Ok(Self::from_le_bytes( + bytes + .get(0..Self::fixed_size()) + .ok_or_else(|| DbError::from("u64 deserialization error: out of bounds"))? + .try_into()?, + )) } +} +impl SerializeFixed for u64 {} + +impl Serialize for f64 { + fn serialize(&self) -> Vec { + self.to_le_bytes().to_vec() + } + + fn deserialize(bytes: &[u8]) -> Result { + Ok(Self::from_le_bytes( + bytes + .get(0..Self::fixed_size()) + .ok_or_else(|| DbError::from("f64 deserialization error: out of bounds"))? + .try_into()?, + )) + } +} + +impl SerializeFixed for f64 {} + +impl Serialize for usize { + fn serialize(&self) -> Vec { + (*self as u64).serialize() + } + + fn deserialize(bytes: &[u8]) -> Result { + let value = u64::deserialize(bytes)?; + Ok(usize::try_from(value)?) + } +} + +impl SerializeFixed for usize { + fn fixed_size() -> usize { + u64::fixed_size() + } +} + +impl Serialize for String { fn serialize(&self) -> Vec { let mut bytes = Vec::::new(); bytes.reserve(self.serialized_size()); @@ -24,7 +97,7 @@ impl PartialSerialize for String { fn deserialize(bytes: &[u8]) -> Result { let len = usize::deserialize(bytes)?; - let begin = usize::serialized_size(); + let begin = usize::fixed_size(); let end = begin + len; Ok(String::from_utf8( @@ -36,11 +109,13 @@ impl PartialSerialize for String { } } -impl PartialSerialize for Vec { +impl SerializeDynamic for String { fn serialized_size(&self) -> usize { - usize::serialized_size() + self.len() * T::serialized_size() + usize::fixed_size() + self.len() } +} +impl Serialize for Vec { fn serialize(&self) -> Vec { let mut bytes = Vec::::new(); bytes.reserve(self.serialized_size()); @@ -55,8 +130,8 @@ impl PartialSerialize for Vec { fn deserialize(bytes: &[u8]) -> Result { let len = usize::deserialize(bytes)?; - let mut begin = usize::serialized_size(); - let mut end = begin + T::serialized_size(); + let mut begin = usize::fixed_size(); + let mut end = begin + T::fixed_size(); let mut vec = Self::new(); vec.reserve(len); @@ -67,19 +142,21 @@ impl PartialSerialize for Vec { type_name::() )) })?)?); - begin += T::serialized_size(); - end += T::serialized_size(); + begin += T::fixed_size(); + end += T::fixed_size(); } Ok(vec) } } -impl PartialSerialize for Vec { +impl SerializeDynamic for Vec { fn serialized_size(&self) -> usize { - usize::serialized_size() + self.len() + usize::fixed_size() + self.len() * T::fixed_size() } +} +impl Serialize for Vec { fn serialize(&self) -> Vec { let mut bytes = Vec::::new(); bytes.reserve(self.serialized_size()); @@ -91,7 +168,7 @@ impl PartialSerialize for Vec { fn deserialize(bytes: &[u8]) -> Result { let len = usize::deserialize(bytes)?; - let begin = usize::serialized_size(); + let begin = usize::fixed_size(); let end = begin + len; Ok(bytes @@ -101,17 +178,13 @@ impl PartialSerialize for Vec { } } -impl PartialSerialize for Vec { +impl SerializeDynamic for Vec { fn serialized_size(&self) -> usize { - let mut size = usize::serialized_size(); - - for value in self { - size += value.serialized_size(); - } - - size + usize::fixed_size() + self.len() } +} +impl Serialize for Vec { fn serialize(&self) -> Vec { let mut bytes = Vec::::new(); bytes.reserve(self.serialized_size()); @@ -126,7 +199,7 @@ impl PartialSerialize for Vec { fn deserialize(bytes: &[u8]) -> Result { let len = usize::deserialize(bytes)?; - let mut begin = usize::serialized_size(); + let mut begin = usize::fixed_size(); let mut vec = Self::new(); vec.reserve(len); @@ -141,9 +214,102 @@ impl PartialSerialize for Vec { } } +impl SerializeDynamic for Vec { + fn serialized_size(&self) -> usize { + let mut size = usize::fixed_size(); + + for value in self { + size += value.serialized_size(); + } + + size + } +} + #[cfg(test)] mod tests { use super::*; + use std::f64::consts::PI; + + #[test] + fn i64() { + let original = -10_i64; + let serialized_size = i64::fixed_size(); + let mut bytes = original.serialize(); + + assert_eq!(bytes.len(), serialized_size); + + bytes.push(0); + let deserialized = i64::deserialize(&bytes).unwrap(); + + assert_eq!(original, deserialized); + } + + #[test] + fn i64_out_of_bounds() { + assert_eq!( + i64::deserialize(&Vec::::new()), + Err(DbError::from("i64 deserialization error: out of bounds")) + ); + } + + #[test] + fn u64() { + let original = 10_u64; + let serialized_size = u64::fixed_size(); + let mut bytes = original.serialize(); + + assert_eq!(bytes.len(), serialized_size); + + bytes.push(0); + let deserialized = u64::deserialize(&bytes).unwrap(); + + assert_eq!(original, deserialized); + } + + #[test] + fn u64_out_of_bounds() { + assert_eq!( + u64::deserialize(&Vec::::new()), + Err(DbError::from("u64 deserialization error: out of bounds")) + ); + } + + #[test] + fn f64() { + let original = -PI; + let serialized_size = f64::fixed_size(); + let mut bytes = original.serialize(); + + assert_eq!(bytes.len(), serialized_size); + + bytes.push(0); + let deserialized = f64::deserialize(&bytes).unwrap(); + + assert_eq!(original, deserialized); + } + + #[test] + fn f64_out_of_bounds() { + assert_eq!( + f64::deserialize(&Vec::::new()), + Err(DbError::from("f64 deserialization error: out of bounds")) + ); + } + + #[test] + fn usize() { + let original: usize = 10; + let serialized_size = usize::fixed_size(); + let mut bytes = original.serialize(); + + assert_eq!(bytes.len(), serialized_size); + + bytes.push(0); + let deserialized = usize::deserialize(&bytes).unwrap(); + + assert_eq!(original, deserialized); + } #[test] fn string() {