feat: encapsulate rusqlite::Error into sqlite::FailedTo (PrepareStatement)
This commit is contained in:
@@ -17,7 +17,7 @@ const SELECT_ATTRIBUTE_BY_FK: &str = r#"
|
|||||||
pub fn run(transaction: &Transaction, entity: &mut Entity) -> Result<(), FailedTo> {
|
pub fn run(transaction: &Transaction, entity: &mut Entity) -> Result<(), FailedTo> {
|
||||||
let mut select_attributes_statement = transaction
|
let mut select_attributes_statement = transaction
|
||||||
.prepare(SELECT_ATTRIBUTE_BY_FK)
|
.prepare(SELECT_ATTRIBUTE_BY_FK)
|
||||||
.map_err(|_| sqlite::FailedTo::PrepareStatement)?;
|
.map_err(|sqlite_error| sqlite::FailedTo::PrepareStatement(sqlite_error))?;
|
||||||
let attributes = select_attributes_statement
|
let attributes = select_attributes_statement
|
||||||
.query_map([&entity.id], sqlite::map::row_to_attribute)
|
.query_map([&entity.id], sqlite::map::row_to_attribute)
|
||||||
.map_err(|sqlite_error| sqlite::FailedTo::ExecuteQuery(sqlite_error))?;
|
.map_err(|sqlite_error| sqlite::FailedTo::ExecuteQuery(sqlite_error))?;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ pub fn run(path: &path::Path, entity_class: &str) -> Result<Vec<Entity>, FailedT
|
|||||||
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)
|
||||||
.map_err(|_| sqlite::FailedTo::PrepareStatement)?;
|
.map_err(|sqlite_error| sqlite::FailedTo::PrepareStatement(sqlite_error))?;
|
||||||
let result = statement
|
let result = statement
|
||||||
.query_map([entity_class], sqlite::map::row_to_entity)
|
.query_map([entity_class], sqlite::map::row_to_entity)
|
||||||
.map_err(|sqlite_error| sqlite::FailedTo::ExecuteQuery(sqlite_error))?;
|
.map_err(|sqlite_error| sqlite::FailedTo::ExecuteQuery(sqlite_error))?;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ pub fn run(path: &path::Path, filter: &Filter) -> Result<Vec<Entity>, FailedTo>
|
|||||||
let params: Vec<&dyn ToSql> = params.iter().map(|p| p.as_ref() as &dyn ToSql).collect();
|
let params: Vec<&dyn ToSql> = params.iter().map(|p| p.as_ref() as &dyn ToSql).collect();
|
||||||
let mut statement = transaction
|
let mut statement = transaction
|
||||||
.prepare(&select_entity_by_filter)
|
.prepare(&select_entity_by_filter)
|
||||||
.map_err(|_| sqlite::FailedTo::PrepareStatement)?;
|
.map_err(|sqlite_error| sqlite::FailedTo::PrepareStatement(sqlite_error))?;
|
||||||
let result = statement
|
let result = statement
|
||||||
.query_map(¶ms[..], sqlite::map::row_to_entity)
|
.query_map(¶ms[..], sqlite::map::row_to_entity)
|
||||||
.map_err(|sqlite_error| sqlite::FailedTo::ExecuteQuery(sqlite_error))?;
|
.map_err(|sqlite_error| sqlite::FailedTo::ExecuteQuery(sqlite_error))?;
|
||||||
|
|||||||
@@ -16,5 +16,5 @@ pub enum FailedTo {
|
|||||||
/// Failed to open a connection to the SQLite database.
|
/// Failed to open a connection to the SQLite database.
|
||||||
OpenConnection(rusqlite::Error),
|
OpenConnection(rusqlite::Error),
|
||||||
/// Failed to prepare a SQL statement for execution.
|
/// Failed to prepare a SQL statement for execution.
|
||||||
PrepareStatement,
|
PrepareStatement(rusqlite::Error),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user