fix(store): Remove lifetime
Remove gratuitous use of lifetimes in the main persistence struct
This commit is contained in:
parent
0a2a57060b
commit
0bee46e75b
@ -15,13 +15,13 @@ use crate::{bincode_options, EntryIter, FileError, IterError};
|
|||||||
///
|
///
|
||||||
/// The changesets are the results of altering a tracker implementation (`T`).
|
/// The changesets are the results of altering a tracker implementation (`T`).
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Store<'a, C> {
|
pub struct Store<C> {
|
||||||
magic: &'a [u8],
|
magic_len: usize,
|
||||||
db_file: File,
|
db_file: File,
|
||||||
marker: PhantomData<C>,
|
marker: PhantomData<C>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, C> PersistBackend<C> for Store<'a, C>
|
impl<C> PersistBackend<C> for Store<C>
|
||||||
where
|
where
|
||||||
C: Append + serde::Serialize + serde::de::DeserializeOwned,
|
C: Append + serde::Serialize + serde::de::DeserializeOwned,
|
||||||
{
|
{
|
||||||
@ -38,7 +38,7 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, C> Store<'a, C>
|
impl<C> Store<C>
|
||||||
where
|
where
|
||||||
C: Append + serde::Serialize + serde::de::DeserializeOwned,
|
C: Append + serde::Serialize + serde::de::DeserializeOwned,
|
||||||
{
|
{
|
||||||
@ -48,7 +48,7 @@ where
|
|||||||
/// the `Store` in the future with [`open`].
|
/// the `Store` in the future with [`open`].
|
||||||
///
|
///
|
||||||
/// [`open`]: Store::open
|
/// [`open`]: Store::open
|
||||||
pub fn create_new<P>(magic: &'a [u8], file_path: P) -> Result<Self, FileError>
|
pub fn create_new<P>(magic: &[u8], file_path: P) -> Result<Self, FileError>
|
||||||
where
|
where
|
||||||
P: AsRef<Path>,
|
P: AsRef<Path>,
|
||||||
{
|
{
|
||||||
@ -67,7 +67,7 @@ where
|
|||||||
.open(file_path)?;
|
.open(file_path)?;
|
||||||
f.write_all(magic)?;
|
f.write_all(magic)?;
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
magic,
|
magic_len: magic.len(),
|
||||||
db_file: f,
|
db_file: f,
|
||||||
marker: Default::default(),
|
marker: Default::default(),
|
||||||
})
|
})
|
||||||
@ -83,7 +83,7 @@ where
|
|||||||
/// [`FileError::InvalidMagicBytes`] error variant will be returned.
|
/// [`FileError::InvalidMagicBytes`] error variant will be returned.
|
||||||
///
|
///
|
||||||
/// [`create_new`]: Store::create_new
|
/// [`create_new`]: Store::create_new
|
||||||
pub fn open<P>(magic: &'a [u8], file_path: P) -> Result<Self, FileError>
|
pub fn open<P>(magic: &[u8], file_path: P) -> Result<Self, FileError>
|
||||||
where
|
where
|
||||||
P: AsRef<Path>,
|
P: AsRef<Path>,
|
||||||
{
|
{
|
||||||
@ -99,7 +99,7 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
magic,
|
magic_len: magic.len(),
|
||||||
db_file: f,
|
db_file: f,
|
||||||
marker: Default::default(),
|
marker: Default::default(),
|
||||||
})
|
})
|
||||||
@ -111,7 +111,7 @@ where
|
|||||||
///
|
///
|
||||||
/// [`open`]: Store::open
|
/// [`open`]: Store::open
|
||||||
/// [`create_new`]: Store::create_new
|
/// [`create_new`]: Store::create_new
|
||||||
pub fn open_or_create_new<P>(magic: &'a [u8], file_path: P) -> Result<Self, FileError>
|
pub fn open_or_create_new<P>(magic: &[u8], file_path: P) -> Result<Self, FileError>
|
||||||
where
|
where
|
||||||
P: AsRef<Path>,
|
P: AsRef<Path>,
|
||||||
{
|
{
|
||||||
@ -132,7 +132,7 @@ where
|
|||||||
/// always iterate over all entries until `None` is returned if you want your next write to go
|
/// 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.
|
/// at the end; otherwise, you will write over existing entries.
|
||||||
pub fn iter_changesets(&mut self) -> EntryIter<C> {
|
pub fn iter_changesets(&mut self) -> EntryIter<C> {
|
||||||
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.
|
/// Loads all the changesets that have been stored as one giant changeset.
|
||||||
|
@ -29,7 +29,7 @@ pub type KeychainChangeSet<A> = (
|
|||||||
local_chain::ChangeSet,
|
local_chain::ChangeSet,
|
||||||
indexed_tx_graph::ChangeSet<A, keychain::ChangeSet<Keychain>>,
|
indexed_tx_graph::ChangeSet<A, keychain::ChangeSet<Keychain>>,
|
||||||
);
|
);
|
||||||
pub type Database<'m, C> = Persist<Store<'m, C>, C>;
|
pub type Database<C> = Persist<Store<C>, C>;
|
||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
#[clap(author, version, about, long_about = None)]
|
#[clap(author, version, about, long_about = None)]
|
||||||
@ -646,14 +646,14 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::type_complexity)]
|
#[allow(clippy::type_complexity)]
|
||||||
pub fn init<'m, CS: clap::Subcommand, S: clap::Args, C>(
|
pub fn init<CS: clap::Subcommand, S: clap::Args, C>(
|
||||||
db_magic: &'m [u8],
|
db_magic: &[u8],
|
||||||
db_default_path: &str,
|
db_default_path: &str,
|
||||||
) -> anyhow::Result<(
|
) -> anyhow::Result<(
|
||||||
Args<CS, S>,
|
Args<CS, S>,
|
||||||
KeyMap,
|
KeyMap,
|
||||||
KeychainTxOutIndex<Keychain>,
|
KeychainTxOutIndex<Keychain>,
|
||||||
Mutex<Database<'m, C>>,
|
Mutex<Database<C>>,
|
||||||
C,
|
C,
|
||||||
)>
|
)>
|
||||||
where
|
where
|
||||||
@ -681,7 +681,7 @@ where
|
|||||||
index.add_keychain(Keychain::Internal, internal_descriptor);
|
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::<C>::open_or_create_new(db_magic, &args.db_path) {
|
||||||
Ok(db_backend) => db_backend,
|
Ok(db_backend) => db_backend,
|
||||||
// we cannot return `err` directly as it has lifetime `'m`
|
// we cannot return `err` directly as it has lifetime `'m`
|
||||||
Err(err) => return Err(anyhow::anyhow!("failed to init db backend: {:?}", err)),
|
Err(err) => return Err(anyhow::anyhow!("failed to init db backend: {:?}", err)),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user