cargo fmt

This commit is contained in:
2026-03-09 12:36:43 +03:00
parent a269a4bff9
commit f510b73d05
2 changed files with 39 additions and 12 deletions

View File

@@ -13,33 +13,55 @@ pub const N_STATEMENTS: usize = 4;
pub async fn get_link(state: &Mutex<GlobalState>, link: &str) -> Result<Option<String>, Error> { pub async fn get_link(state: &Mutex<GlobalState>, link: &str) -> Result<Option<String>, Error> {
let lock = state.lock().await; let lock = state.lock().await;
Ok(lock.db_client.query_opt(&lock.statements[STATEMENT_GET_LINK], &[&link]).await?.map(|row| row.get(0))) Ok(lock
.db_client
.query_opt(&lock.statements[STATEMENT_GET_LINK], &[&link])
.await?
.map(|row| row.get(0)))
} }
pub async fn add_link(state: &Mutex<GlobalState>, link: &str, url: &str) -> Result<(), Error> { pub async fn add_link(state: &Mutex<GlobalState>, link: &str, url: &str) -> Result<(), Error> {
let lock = state.lock().await; let lock = state.lock().await;
lock.db_client.execute(&lock.statements[STATEMENT_ADD_LINK], &[&link, &url]).await?; lock.db_client
.execute(&lock.statements[STATEMENT_ADD_LINK], &[&link, &url])
.await?;
Ok(()) Ok(())
} }
pub async fn add_temporary_link(state: &Mutex<GlobalState>, link: &str, url: &str, ttl: u64) -> Result<(), Error> { pub async fn add_temporary_link(
state: &Mutex<GlobalState>,
link: &str,
url: &str,
ttl: u64,
) -> Result<(), Error> {
let time = SystemTime::now() + Duration::from_secs(ttl); let time = SystemTime::now() + Duration::from_secs(ttl);
let lock = state.lock().await; let lock = state.lock().await;
lock.db_client.execute(&lock.statements[STATEMENT_ADD_TEMP_LINK], &[&link, &url, &time]).await?; lock.db_client
.execute(
&lock.statements[STATEMENT_ADD_TEMP_LINK],
&[&link, &url, &time],
)
.await?;
Ok(()) Ok(())
} }
pub async fn delete_expired_links(state: &Mutex<GlobalState>) -> Result<(), Error> { pub async fn delete_expired_links(state: &Mutex<GlobalState>) -> Result<(), Error> {
let lock = state.lock().await; let lock = state.lock().await;
lock.db_client.execute(&lock.statements[STATEMENT_DELETE_EXPIRED], &[]).await?; lock.db_client
.execute(&lock.statements[STATEMENT_DELETE_EXPIRED], &[])
.await?;
Ok(()) Ok(())
} }
pub async fn prepare_statements(db: &Client) -> Result<[Statement; N_STATEMENTS], Error> { pub async fn prepare_statements(db: &Client) -> Result<[Statement; N_STATEMENTS], Error> {
Ok([db.prepare("SELECT url FROM links WHERE id = $1").await?, Ok([
db.prepare("INSERT INTO links (id, url) VALUES ($1, $2)").await?, db.prepare("SELECT url FROM links WHERE id = $1").await?,
db.prepare("INSERT INTO links (id, url, valid_until) VALUES ($1, $2, $3)").await?, db.prepare("INSERT INTO links (id, url) VALUES ($1, $2)")
db.prepare("DELETE FROM links WHERE valid_until < NOW()").await? .await?,
db.prepare("INSERT INTO links (id, url, valid_until) VALUES ($1, $2, $3)")
.await?,
db.prepare("DELETE FROM links WHERE valid_until < NOW()")
.await?,
]) ])
} }

View File

@@ -5,7 +5,12 @@ pub fn generate_link_id(length: u32) -> String {
let alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"; let alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
let mut link = String::with_capacity(length as usize); let mut link = String::with_capacity(length as usize);
for _ in 0..length { for _ in 0..length {
link.push(alphabet.chars().nth(rng.sample(Uniform::new(0u8, 64u8)) as usize).unwrap()); link.push(
alphabet
.chars()
.nth(rng.sample(Uniform::new(0u8, 64u8)) as usize)
.unwrap(),
);
} }
if link == "create" || link == "p" { if link == "create" || link == "p" {
return generate_link_id(length); return generate_link_id(length);