feat: encapsulate rusqlite::Error into sqlite::FailedTo enum (begin transaction)

This commit is contained in:
2026-02-27 09:28:34 +01:00
parent 4cca2f1126
commit 0467ef6a75
5 changed files with 6 additions and 6 deletions

View File

@@ -11,7 +11,7 @@ pub fn run(path: &path::Path, entity_class: &str) -> Result<Vec<Entity>, FailedT
let mut connection = Connection::open(path).map_err(|_| sqlite::FailedTo::OpenConnection)?;
let mut transaction = connection
.transaction()
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
.map_err(|sqlite_error| sqlite::FailedTo::BeginTransaction(sqlite_error))?;
transaction.set_drop_behavior(DropBehavior::Commit);
let mut statement = transaction
.prepare(SELECT_ENTITY_BY_CLASS)

View File

@@ -6,7 +6,7 @@ pub fn run(path: &path::Path, filter: &Filter) -> Result<Vec<Entity>, FailedTo>
let mut connection = Connection::open(path).map_err(|_| sqlite::FailedTo::OpenConnection)?;
let mut transaction = connection
.transaction()
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
.map_err(|sqlite_error| sqlite::FailedTo::BeginTransaction(sqlite_error))?;
transaction.set_drop_behavior(DropBehavior::Commit);
let select_entity_by_filter = sqlite::build::statement(filter)?;
let params = sqlite::build::params(filter)?;

View File

@@ -10,7 +10,7 @@ pub fn run(path: &path::Path, entity_id: &str) -> Result<Option<Entity>, FailedT
let mut connection = Connection::open(path).map_err(|_| sqlite::FailedTo::OpenConnection)?;
let mut transaction = connection
.transaction()
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
.map_err(|sqlite_error| sqlite::FailedTo::BeginTransaction(sqlite_error))?;
transaction.set_drop_behavior(DropBehavior::Commit);
let mut entity = transaction
.query_one(SELECT_ENTITY_BY_ID, [entity_id], sqlite::map::row_to_entity)

View File

@@ -69,7 +69,7 @@ pub fn run(path: &path::Path, items: &HashMap<String, Entity>) -> result::Result
let mut connection = Connection::open(path).map_err(|_| sqlite::FailedTo::OpenConnection)?;
let transaction = connection
.transaction()
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
.map_err(|sqlite_error| sqlite::FailedTo::BeginTransaction(sqlite_error))?;
for entity in items.values().filter(|item| {
item.state == EntityState::New
|| item.state == EntityState::Updated

View File

@@ -1,8 +1,8 @@
/// Represents failures that can occur specifically within the SQLite implementation.
#[derive(Debug, PartialEq, PartialOrd, Eq, Ord, Clone, Copy, Hash)]
#[derive(Debug, PartialEq)]
pub enum FailedTo {
/// Failed to begin a database transaction.
BeginTransaction,
BeginTransaction(rusqlite::Error),
/// Failed to build a SQL statement.
BuildStatement,
/// Failed to commit a database transaction.