use anyhow::Result; use crate::repo::Storage; impl Storage { #[tracing::instrument(skip(self), name = "Storage::set_argon2_challenge")] pub async fn set_argon2_challenge(&self, user_id: u32, hash: &str) -> Result<()> { let mut executor = self.conn.lock().await; sqlx::query( "insert into challenges_argon2_password(user_id, hash) values (?, ?) on conflict(user_id) do update set hash = excluded.hash;", ) .bind(user_id) .bind(hash) .execute(&mut *executor) .await?; Ok(()) } }