in src/bindgen/language_backend/mod.rs [52:113]
fn write_function_with_layout<W: Write>(
&mut self,
config: &Config,
out: &mut SourceWriter<W>,
func: &Function,
layout: Layout,
) {
let prefix = config.function.prefix(&func.annotations);
let postfix = config.function.postfix(&func.annotations);
let condition = func.cfg.to_condition(config);
condition.write_before(config, out);
self.write_documentation(out, &func.documentation);
fn write_space<W: Write>(layout: Layout, out: &mut SourceWriter<W>) {
if layout == Layout::Vertical {
out.new_line();
} else {
out.write(" ")
}
}
if func.extern_decl {
out.write("extern ");
} else {
if let Some(ref prefix) = prefix {
write!(out, "{}", prefix);
write_space(layout, out);
}
if func.annotations.must_use(config) {
if let Some(ref anno) = config.function.must_use {
write!(out, "{}", anno);
write_space(layout, out);
}
}
if let Some(note) = func
.annotations
.deprecated_note(config, DeprecatedNoteKind::Function)
{
write!(out, "{}", note);
write_space(layout, out);
}
}
cdecl::write_func(self, out, func, layout, config);
if !func.extern_decl {
if let Some(ref postfix) = postfix {
write_space(layout, out);
write!(out, "{}", postfix);
}
}
if let Some(ref swift_name_macro) = config.function.swift_name_macro {
if let Some(swift_name) = func.swift_name(config) {
// XXX Should this account for `layout`?
write!(out, " {}({})", swift_name_macro, swift_name);
}
}
out.write(";");
condition.write_after(config, out);
}