summaryrefslogtreecommitdiff
path: root/src/db/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/mod.rs')
-rw-r--r--src/db/mod.rs39
1 files changed, 1 insertions, 38 deletions
diff --git a/src/db/mod.rs b/src/db/mod.rs
index 9a74dcb..98ec618 100644
--- a/src/db/mod.rs
+++ b/src/db/mod.rs
@@ -1,9 +1,9 @@
mod backup;
+pub mod failed;
use std::str::FromStr;
use sqlx::{
- error::{DatabaseError, ErrorKind},
migrate::MigrateDatabase as _,
sqlite::{Sqlite, SqliteConnectOptions, SqlitePool, SqlitePoolOptions},
};
@@ -66,14 +66,6 @@ pub trait NotFound: Sized {
type Ok;
type Error;
- fn not_found<E, F>(self, map: F) -> Result<Self::Ok, E>
- where
- E: From<Self::Error>,
- F: FnOnce() -> E,
- {
- self.optional()?.ok_or_else(map)
- }
-
fn optional(self) -> Result<Option<Self::Ok>, Self::Error>;
}
@@ -89,32 +81,3 @@ impl<T> NotFound for Result<T, sqlx::Error> {
}
}
}
-
-pub trait Duplicate {
- type Ok;
- type Error;
-
- fn duplicate<E, F>(self, map: F) -> Result<Self::Ok, E>
- where
- E: From<Self::Error>,
- F: FnOnce() -> E;
-}
-
-impl<T> Duplicate for Result<T, sqlx::Error> {
- type Ok = T;
- type Error = sqlx::Error;
-
- fn duplicate<E, F>(self, map: F) -> Result<T, E>
- where
- E: From<sqlx::Error>,
- F: FnOnce() -> E,
- {
- match self {
- Ok(value) => Ok(value),
- Err(error) => match error.as_database_error().map(DatabaseError::kind) {
- Some(ErrorKind::UniqueViolation) => Err(map()),
- _ => Err(error.into()),
- },
- }
- }
-}