1
Fork 0

Rollup merge of #112031 - sladyn98:migrate-proc-macro, r=GuillaumeGomez

Migrate  `item_proc_macro` to Askama

This PR migrates `item_proc_macro` to Askama

Refers https://github.com/rust-lang/rust/issues/108868
This commit is contained in:
Matthias Krüger 2023-05-31 07:07:00 +02:00 committed by GitHub
commit fdd62cfe7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1420,30 +1420,36 @@ fn item_macro(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean:
write!(w, "{}", document(cx, it, None, HeadingOffset::H2)) write!(w, "{}", document(cx, it, None, HeadingOffset::H2))
} }
fn item_proc_macro(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, m: &clean::ProcMacro) { fn item_proc_macro(
wrap_item(w, |w| { w: &mut impl fmt::Write,
cx: &mut Context<'_>,
it: &clean::Item,
m: &clean::ProcMacro,
) {
let mut buffer = Buffer::new();
wrap_item(&mut buffer, |buffer| {
let name = it.name.expect("proc-macros always have names"); let name = it.name.expect("proc-macros always have names");
match m.kind { match m.kind {
MacroKind::Bang => { MacroKind::Bang => {
write!(w, "{}!() {{ /* proc-macro */ }}", name); write!(buffer, "{}!() {{ /* proc-macro */ }}", name);
} }
MacroKind::Attr => { MacroKind::Attr => {
write!(w, "#[{}]", name); write!(buffer, "#[{}]", name);
} }
MacroKind::Derive => { MacroKind::Derive => {
write!(w, "#[derive({})]", name); write!(buffer, "#[derive({})]", name);
if !m.helpers.is_empty() { if !m.helpers.is_empty() {
w.push_str("\n{\n"); buffer.push_str("\n{\n");
w.push_str(" // Attributes available to this derive:\n"); buffer.push_str(" // Attributes available to this derive:\n");
for attr in &m.helpers { for attr in &m.helpers {
writeln!(w, " #[{}]", attr); writeln!(buffer, " #[{}]", attr);
} }
w.push_str("}\n"); buffer.push_str("}\n");
} }
} }
} }
}); });
write!(w, "{}", document(cx, it, None, HeadingOffset::H2)) write!(w, "{}{}", buffer.into_inner(), document(cx, it, None, HeadingOffset::H2)).unwrap();
} }
fn item_primitive(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item) { fn item_primitive(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item) {