feat: rustc and clippy linting
This commit is contained in:
@@ -23,14 +23,14 @@ const MIGRATIONS: EmbeddedMigrations = embed_migrations!("migrations");
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum DatabaseSetupError {
|
||||
#[error("Failed to determine home directory")]
|
||||
HomeDir(std::io::Error),
|
||||
#[error(transparent)]
|
||||
ConcurrencySetup(diesel::result::Error),
|
||||
|
||||
#[error(transparent)]
|
||||
Connection(diesel::ConnectionError),
|
||||
|
||||
#[error(transparent)]
|
||||
ConcurrencySetup(diesel::result::Error),
|
||||
#[error("Failed to determine home directory")]
|
||||
HomeDir(std::io::Error),
|
||||
|
||||
#[error(transparent)]
|
||||
Migration(Box<dyn std::error::Error + Send + Sync>),
|
||||
@@ -41,10 +41,11 @@ pub enum DatabaseSetupError {
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum DatabaseError {
|
||||
#[error("Database connection error")]
|
||||
Pool(#[from] PoolError),
|
||||
#[error("Database query error")]
|
||||
Connection(#[from] diesel::result::Error),
|
||||
|
||||
#[error("Database connection error")]
|
||||
Pool(#[from] PoolError),
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "info")]
|
||||
@@ -93,13 +94,16 @@ fn initialize_database(url: &str) -> Result<(), DatabaseSetupError> {
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "info")]
|
||||
/// Creates a connection pool for the `SQLite` database.
|
||||
///
|
||||
/// # Panics
|
||||
/// Panics if the database path is not valid UTF-8.
|
||||
pub async fn create_pool(url: Option<&str>) -> Result<DatabasePool, DatabaseSetupError> {
|
||||
let database_url = url.map(String::from).unwrap_or(
|
||||
#[allow(clippy::expect_used)]
|
||||
database_path()?
|
||||
.to_str()
|
||||
.expect("database path is not valid UTF-8")
|
||||
.to_string(),
|
||||
.to_owned(),
|
||||
);
|
||||
|
||||
initialize_database(&database_url)?;
|
||||
@@ -134,19 +138,19 @@ pub async fn create_pool(url: Option<&str>) -> Result<DatabasePool, DatabaseSetu
|
||||
}
|
||||
|
||||
#[mutants::skip]
|
||||
#[expect(clippy::missing_panics_doc, reason = "Tests oriented function")]
|
||||
/// Creates a test database pool with a temporary `SQLite` database file.
|
||||
pub async fn create_test_pool() -> DatabasePool {
|
||||
use rand::distr::{Alphanumeric, SampleString as _};
|
||||
|
||||
let tempfile_name = Alphanumeric.sample_string(&mut rand::rng(), 16);
|
||||
|
||||
let file = std::env::temp_dir().join(tempfile_name);
|
||||
#[allow(clippy::expect_used)]
|
||||
let url = file
|
||||
.to_str()
|
||||
.expect("temp file path is not valid UTF-8")
|
||||
.to_string();
|
||||
.to_owned();
|
||||
|
||||
#[allow(clippy::expect_used)]
|
||||
create_pool(Some(&url))
|
||||
.await
|
||||
.expect("Failed to create test database pool")
|
||||
|
||||
Reference in New Issue
Block a user