feat: encapsulate rusqlite::Error into sqlite::FailedTo enum (begin transaction)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)?;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user