use tokio_postgres::GenericClient; use crate::database::DatabaseError; pub async fn search_tags( db_client: &impl GenericClient, search_query: &str, limit: u16, ) -> Result, DatabaseError> { let db_search_query = format!("%{}%", search_query); let rows = db_client.query( " SELECT tag_name FROM tag WHERE tag_name ILIKE $1 LIMIT $2 ", &[&db_search_query, &i64::from(limit)], ).await?; let tags: Vec = rows.iter() .map(|row| row.try_get("tag_name")) .collect::>()?; Ok(tags) }