// TODO: This can be a const fn when mutable references are allowed in const // context.
macro_rules! pass {
($pass:ident) => {
PostProcessingPass {
should_run: |options| options.$pass,
run: |file| $pass(file),
}
};
}
pub(crate) fn postprocessing(
items: Vec<TokenStream>,
options: &BindgenOptions,
) -> TokenStream { let items = items.into_iter().collect(); let require_syn = PASSES.iter().any(|pass| (pass.should_run)(options));
if !require_syn { return items;
}
// This syn business is a hack, for now. This means that we are re-parsing already // generated code using `syn` (as opposed to `quote`) because `syn` provides us more // control over the elements. // The `unwrap` here is deliberate because bindgen should generate valid rust items at all // times. letmut file = parse2::<File>(items).unwrap();
for pass in PASSES { if (pass.should_run)(options) {
(pass.run)(&mut file);
}
}
file.into_token_stream()
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.