diff --git a/identity-api-rs/src/database/types.rs b/identity-api-rs/src/database/list.rs similarity index 82% rename from identity-api-rs/src/database/types.rs rename to identity-api-rs/src/database/list.rs index dc14bbf..a1e450a 100644 --- a/identity-api-rs/src/database/types.rs +++ b/identity-api-rs/src/database/list.rs @@ -1,3 +1,4 @@ +use std::fmt::{Display, Write}; use diesel::{ backend::Backend, deserialize::{FromSql, FromSqlRow}, serialize::ToSql, sql_types::Text, sqlite::Sqlite }; @@ -6,16 +7,18 @@ use diesel::{ #[repr(transparent)] pub struct List(pub Vec); -impl ToString for List { - fn to_string(&self) -> String { - "[".to_owned() - + &self - .0 - .iter() - .map(|v| "\"".to_owned() + &v.replace("\"", "\\\"") + "\"") - .collect::>() - .join(",") - + "]" +impl Display for List { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_char('[')?; + f.write_str( + &self + .0 + .iter() + .map(|v| "\"".to_owned() + &v.replace("\"", "\\\"") + "\"") + .collect::>() + .join(",") + )?; + f.write_char(']') } } diff --git a/identity-api-rs/src/database/mod.rs b/identity-api-rs/src/database/mod.rs index f689afe..8dd10b0 100644 --- a/identity-api-rs/src/database/mod.rs +++ b/identity-api-rs/src/database/mod.rs @@ -20,7 +20,7 @@ use crate::env::database_url; pub mod models; pub mod schema; -pub mod types; +pub mod list; pub fn establish_connection() -> SqliteConnection { let url = database_url(); diff --git a/identity-api-rs/src/database/models.rs b/identity-api-rs/src/database/models.rs index 26249a8..6166ef8 100644 --- a/identity-api-rs/src/database/models.rs +++ b/identity-api-rs/src/database/models.rs @@ -18,7 +18,7 @@ use chrono::NaiveDateTime; use diesel::prelude::*; use crate::database::schema; -use crate::database::types::List; +use crate::database::list::List; #[derive(Queryable, Selectable)] #[diesel(table_name = schema::date_entries)] diff --git a/identity-api-rs/src/env.rs b/identity-api-rs/src/env.rs index 8b0e325..cfeb51b 100644 --- a/identity-api-rs/src/env.rs +++ b/identity-api-rs/src/env.rs @@ -18,7 +18,7 @@ use std::env; use std::sync::OnceLock; use std::time::Duration; -const REQUIRED_ENV_VARIABLES: [&'static str; 4] = [ +const REQUIRED_ENV_VARIABLES: [&str; 4] = [ "IDENTITY_API_JWT_SECRET", "IDENTITY_API_ASSET_API_ENDPOINT", "IDENTITY_API_JWT_ALG", @@ -32,7 +32,7 @@ pub enum LoadEnvError { } pub fn load_env() -> Result<(), LoadEnvError> { - dotenvy::dotenv().map_err(|e| LoadEnvError::DotenvyError(e))?; + dotenvy::dotenv().map_err(LoadEnvError::DotenvyError)?; for key in REQUIRED_ENV_VARIABLES { if env::var(key).is_err() {