in src/bindgen/language_backend/clike.rs [69:113]
fn open_close_namespaces<W: Write>(&mut self, out: &mut SourceWriter<W>, open: bool) {
let mut namespaces =
if self.config.language != Language::Cxx && !self.config.cpp_compatible_c() {
vec![]
} else {
let mut ret = vec![];
if let Some(ref namespace) = self.config.namespace {
ret.push(&**namespace);
}
if let Some(ref namespaces) = self.config.namespaces {
for namespace in namespaces {
ret.push(&**namespace);
}
}
ret
};
if namespaces.is_empty() {
return;
}
if !open {
namespaces.reverse();
}
if self.config.cpp_compatible_c() {
out.new_line_if_not_start();
out.write("#ifdef __cplusplus");
}
for namespace in namespaces {
out.new_line();
if open {
write!(out, "namespace {} {{", namespace)
} else {
write!(out, "}} // namespace {}", namespace)
}
}
out.new_line();
if self.config.cpp_compatible_c() {
out.write("#endif // __cplusplus");
out.new_line();
}
}