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 connection = Connection::open(path).map_err(|_| sqlite::FailedTo::OpenConnection)?;
|
||||||
let mut transaction = connection
|
let mut transaction = connection
|
||||||
.transaction()
|
.transaction()
|
||||||
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
|
.map_err(|sqlite_error| sqlite::FailedTo::BeginTransaction(sqlite_error))?;
|
||||||
transaction.set_drop_behavior(DropBehavior::Commit);
|
transaction.set_drop_behavior(DropBehavior::Commit);
|
||||||
let mut statement = transaction
|
let mut statement = transaction
|
||||||
.prepare(SELECT_ENTITY_BY_CLASS)
|
.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 connection = Connection::open(path).map_err(|_| sqlite::FailedTo::OpenConnection)?;
|
||||||
let mut transaction = connection
|
let mut transaction = connection
|
||||||
.transaction()
|
.transaction()
|
||||||
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
|
.map_err(|sqlite_error| sqlite::FailedTo::BeginTransaction(sqlite_error))?;
|
||||||
transaction.set_drop_behavior(DropBehavior::Commit);
|
transaction.set_drop_behavior(DropBehavior::Commit);
|
||||||
let select_entity_by_filter = sqlite::build::statement(filter)?;
|
let select_entity_by_filter = sqlite::build::statement(filter)?;
|
||||||
let params = sqlite::build::params(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 connection = Connection::open(path).map_err(|_| sqlite::FailedTo::OpenConnection)?;
|
||||||
let mut transaction = connection
|
let mut transaction = connection
|
||||||
.transaction()
|
.transaction()
|
||||||
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
|
.map_err(|sqlite_error| sqlite::FailedTo::BeginTransaction(sqlite_error))?;
|
||||||
transaction.set_drop_behavior(DropBehavior::Commit);
|
transaction.set_drop_behavior(DropBehavior::Commit);
|
||||||
let mut entity = transaction
|
let mut entity = transaction
|
||||||
.query_one(SELECT_ENTITY_BY_ID, [entity_id], sqlite::map::row_to_entity)
|
.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 mut connection = Connection::open(path).map_err(|_| sqlite::FailedTo::OpenConnection)?;
|
||||||
let transaction = connection
|
let transaction = connection
|
||||||
.transaction()
|
.transaction()
|
||||||
.map_err(|_| sqlite::FailedTo::BeginTransaction)?;
|
.map_err(|sqlite_error| sqlite::FailedTo::BeginTransaction(sqlite_error))?;
|
||||||
for entity in items.values().filter(|item| {
|
for entity in items.values().filter(|item| {
|
||||||
item.state == EntityState::New
|
item.state == EntityState::New
|
||||||
|| item.state == EntityState::Updated
|
|| item.state == EntityState::Updated
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/// Represents failures that can occur specifically within the SQLite implementation.
|
/// 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 {
|
pub enum FailedTo {
|
||||||
/// Failed to begin a database transaction.
|
/// Failed to begin a database transaction.
|
||||||
BeginTransaction,
|
BeginTransaction(rusqlite::Error),
|
||||||
/// Failed to build a SQL statement.
|
/// Failed to build a SQL statement.
|
||||||
BuildStatement,
|
BuildStatement,
|
||||||
/// Failed to commit a database transaction.
|
/// Failed to commit a database transaction.
|
||||||
|
|||||||
Reference in New Issue
Block a user