Skip to content

Commit d84959d

Browse files
add support for default-target
1 parent 32102ce commit d84959d

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/web/rustdoc.rs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,22 @@ pub fn rustdoc_redirector_handler(req: &mut Request) -> IronResult<Response> {
9898

9999
// get target name
100100
// FIXME: This is a bit inefficient but allowing us to use less code in general
101-
let target_name: String =
102-
ctry!(conn.query("SELECT target_name
103-
FROM releases
104-
INNER JOIN crates ON crates.id = releases.crate_id
105-
WHERE crates.name = $1 AND releases.version = $2",
106-
&[&crate_name, &version]))
107-
.get(0)
108-
.get(0);
101+
let target_name: String = {
102+
let query = ctry!(conn.query("SELECT target_name, default_target
103+
FROM releases
104+
INNER JOIN crates ON crates.id = releases.crate_id
105+
WHERE crates.name = $1 AND releases.version = $2",
106+
&[&crate_name, &version]));
107+
let row = query.get(0);
108+
109+
let (target, default): (String, Option<String>) = (row.get(0), row.get(1));
110+
111+
if let Some(default) = default {
112+
format!("{}/{}", default, target)
113+
} else {
114+
target
115+
}
116+
};
109117

110118
redirect_to_doc(req, &crate_name, &version, &target_name)
111119
}

0 commit comments

Comments
 (0)