From 93f9b83e275e8ab67630c925a39de6c01611a01b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=97=E5=AE=87?= Date: Fri, 19 Jul 2024 07:22:09 +0000 Subject: [PATCH] chore(chain): rm unused `sqlite` types --- crates/chain/src/sqlite.rs | 102 +------------------------------------ 1 file changed, 2 insertions(+), 100 deletions(-) diff --git a/crates/chain/src/sqlite.rs b/crates/chain/src/sqlite.rs index e8b1cb52..23dccf10 100644 --- a/crates/chain/src/sqlite.rs +++ b/crates/chain/src/sqlite.rs @@ -1,6 +1,6 @@ //! Module for stuff -use core::{fmt::Debug, ops::Deref, str::FromStr}; +use core::{ops::Deref, str::FromStr}; use alloc::{borrow::ToOwned, boxed::Box, string::ToString, vec::Vec}; use bitcoin::consensus::{Decodable, Encodable}; @@ -14,105 +14,7 @@ use rusqlite::{ ToSql, }; -use crate::{Anchor, Merge}; - -/// Parameters for [`Persister`]. -pub trait PersistParams { - /// Data type that is loaded and written to the database. - type ChangeSet: Default + Merge; - - /// Initialize SQL tables. - fn initialize_tables(&self, db_tx: &Transaction) -> rusqlite::Result<()>; - - /// Load all data from tables. - fn load_changeset(&self, db_tx: &Transaction) -> rusqlite::Result>; - - /// Write data into table(s). - fn write_changeset( - &self, - db_tx: &Transaction, - changeset: &Self::ChangeSet, - ) -> rusqlite::Result<()>; -} - -// TODO: Use macros -impl PersistParams for (A, B) { - type ChangeSet = (A::ChangeSet, B::ChangeSet); - - fn initialize_tables(&self, db_tx: &Transaction) -> rusqlite::Result<()> { - self.0.initialize_tables(db_tx)?; - self.1.initialize_tables(db_tx)?; - Ok(()) - } - - fn load_changeset(&self, db_tx: &Transaction) -> rusqlite::Result> { - let changeset = ( - self.0.load_changeset(db_tx)?.unwrap_or_default(), - self.1.load_changeset(db_tx)?.unwrap_or_default(), - ); - if changeset.is_empty() { - Ok(None) - } else { - Ok(Some(changeset)) - } - } - - fn write_changeset( - &self, - db_tx: &Transaction, - changeset: &Self::ChangeSet, - ) -> rusqlite::Result<()> { - self.0.write_changeset(db_tx, &changeset.0)?; - self.1.write_changeset(db_tx, &changeset.1)?; - Ok(()) - } -} - -/// Persists data in to a relational schema based [SQLite] database file. -/// -/// The changesets loaded or stored represent changes to keychain and blockchain data. -/// -/// [SQLite]: https://www.sqlite.org/index.html -#[derive(Debug)] -pub struct Persister

{ - conn: rusqlite::Connection, - params: P, -} - -impl Persister

{ - /// Persist changeset to the database connection. - pub fn persist(&mut self, changeset: &P::ChangeSet) -> rusqlite::Result<()> { - if !changeset.is_empty() { - let db_tx = self.conn.transaction()?; - self.params.write_changeset(&db_tx, changeset)?; - db_tx.commit()?; - } - Ok(()) - } -} - -/// Extends [`rusqlite::Connection`] to transform into a [`Persister`]. -pub trait ConnectionExt: Sized { - /// Transform into a [`Persister`]. - fn into_persister( - self, - params: P, - ) -> rusqlite::Result<(Persister

, Option)>; -} - -impl ConnectionExt for rusqlite::Connection { - fn into_persister( - mut self, - params: P, - ) -> rusqlite::Result<(Persister

, Option)> { - let db_tx = self.transaction()?; - params.initialize_tables(&db_tx)?; - let changeset = params.load_changeset(&db_tx)?; - db_tx.commit()?; - let persister = Persister { conn: self, params }; - Ok((persister, changeset)) - } -} +use crate::Anchor; /// Table name for schemas. pub const SCHEMAS_TABLE_NAME: &str = "bdk_schemas";