Skip to content

Commit 0f1ca35

Browse files
committed
switch to using sqlx::query! macro in web::features
1 parent c98e4fa commit 0f1ca35

2 files changed

+56
-9
lines changed

.sqlx/query-27e9c3c8c3f7770a31967760fdce2ff0304cd9f28c3c8bc056c5b2a20952fc99.json

+46
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/web/features.rs

+10-9
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use crate::{
1010
use anyhow::anyhow;
1111
use axum::{extract::Path, response::IntoResponse};
1212
use serde::Serialize;
13-
use sqlx::Row as _;
1413
use std::collections::{HashMap, VecDeque};
1514

1615
const DEFAULT_NAME: &str = "default";
@@ -57,22 +56,24 @@ pub(crate) async fn build_features_handler(
5756

5857
let metadata = MetaData::from_crate(&mut conn, &name, &version, &version_or_latest).await?;
5958

60-
let row = sqlx::query(
61-
"SELECT releases.features FROM releases
62-
INNER JOIN crates ON crates.id = releases.crate_id
63-
WHERE crates.name = $1 AND releases.version = $2",
59+
let row = sqlx::query!(
60+
r#"
61+
SELECT releases.features as "features?: Vec<Feature>"
62+
FROM releases
63+
INNER JOIN crates ON crates.id = releases.crate_id
64+
WHERE crates.name = $1 AND releases.version = $2"#,
65+
name,
66+
version
6467
)
65-
.bind(&name)
66-
.bind(&version)
6768
.fetch_optional(&mut *conn)
6869
.await?
6970
.ok_or_else(|| anyhow!("missing release"))?;
7071

7172
let mut features = None;
7273
let mut default_len = 0;
7374

74-
if let Some(raw) = row.get(0) {
75-
let result = order_features_and_count_default_len(raw);
75+
if let Some(raw_features) = row.features {
76+
let result = order_features_and_count_default_len(raw_features);
7677
features = Some(result.0);
7778
default_len = result.1;
7879
}

0 commit comments

Comments
 (0)