diff --git a/crates/file_store/src/store.rs b/crates/file_store/src/store.rs index ebab2fd0..b66275df 100644 --- a/crates/file_store/src/store.rs +++ b/crates/file_store/src/store.rs @@ -15,13 +15,13 @@ use crate::{bincode_options, EntryIter, FileError, IterError}; /// /// The changesets are the results of altering a tracker implementation (`T`). #[derive(Debug)] -pub struct Store<'a, C> { - magic: &'a [u8], +pub struct Store { + magic_len: usize, db_file: File, marker: PhantomData, } -impl<'a, C> PersistBackend for Store<'a, C> +impl PersistBackend for Store where C: Append + serde::Serialize + serde::de::DeserializeOwned, { @@ -38,7 +38,7 @@ where } } -impl<'a, C> Store<'a, C> +impl Store where C: Append + serde::Serialize + serde::de::DeserializeOwned, { @@ -48,7 +48,7 @@ where /// the `Store` in the future with [`open`]. /// /// [`open`]: Store::open - pub fn create_new

(magic: &'a [u8], file_path: P) -> Result + pub fn create_new

(magic: &[u8], file_path: P) -> Result where P: AsRef, { @@ -67,7 +67,7 @@ where .open(file_path)?; f.write_all(magic)?; Ok(Self { - magic, + magic_len: magic.len(), db_file: f, marker: Default::default(), }) @@ -83,7 +83,7 @@ where /// [`FileError::InvalidMagicBytes`] error variant will be returned. /// /// [`create_new`]: Store::create_new - pub fn open

(magic: &'a [u8], file_path: P) -> Result + pub fn open

(magic: &[u8], file_path: P) -> Result where P: AsRef, { @@ -99,7 +99,7 @@ where } Ok(Self { - magic, + magic_len: magic.len(), db_file: f, marker: Default::default(), }) @@ -111,7 +111,7 @@ where /// /// [`open`]: Store::open /// [`create_new`]: Store::create_new - pub fn open_or_create_new

(magic: &'a [u8], file_path: P) -> Result + pub fn open_or_create_new

(magic: &[u8], file_path: P) -> Result where P: AsRef, { @@ -132,7 +132,7 @@ where /// always iterate over all entries until `None` is returned if you want your next write to go /// at the end; otherwise, you will write over existing entries. pub fn iter_changesets(&mut self) -> EntryIter { - EntryIter::new(self.magic.len() as u64, &mut self.db_file) + EntryIter::new(self.magic_len as u64, &mut self.db_file) } /// Loads all the changesets that have been stored as one giant changeset. diff --git a/example-crates/example_cli/src/lib.rs b/example-crates/example_cli/src/lib.rs index 46231946..aa52b46d 100644 --- a/example-crates/example_cli/src/lib.rs +++ b/example-crates/example_cli/src/lib.rs @@ -29,7 +29,7 @@ pub type KeychainChangeSet = ( local_chain::ChangeSet, indexed_tx_graph::ChangeSet>, ); -pub type Database<'m, C> = Persist, C>; +pub type Database = Persist, C>; #[derive(Parser)] #[clap(author, version, about, long_about = None)] @@ -646,14 +646,14 @@ where } #[allow(clippy::type_complexity)] -pub fn init<'m, CS: clap::Subcommand, S: clap::Args, C>( - db_magic: &'m [u8], +pub fn init( + db_magic: &[u8], db_default_path: &str, ) -> anyhow::Result<( Args, KeyMap, KeychainTxOutIndex, - Mutex>, + Mutex>, C, )> where @@ -681,7 +681,7 @@ where index.add_keychain(Keychain::Internal, internal_descriptor); } - let mut db_backend = match Store::<'m, C>::open_or_create_new(db_magic, &args.db_path) { + let mut db_backend = match Store::::open_or_create_new(db_magic, &args.db_path) { Ok(db_backend) => db_backend, // we cannot return `err` directly as it has lifetime `'m` Err(err) => return Err(anyhow::anyhow!("failed to init db backend: {:?}", err)),