fn write_headers()

in src/bindgen/language_backend/cython.rs [45:105]


    fn write_headers<W: Write>(&self, out: &mut SourceWriter<W>, package_version: &str) {
        if self.config.package_version {
            write!(out, "''' Package version: {} '''", package_version);
            out.new_line();
        }
        if let Some(ref f) = self.config.header {
            out.new_line_if_not_start();
            write!(out, "{}", f);
            out.new_line();
        }

        if self.config.include_version {
            out.new_line_if_not_start();
            write!(
                out,
                "/* Generated with cbindgen:{} */",
                crate::bindgen::config::VERSION
            );
            out.new_line();
        }
        if let Some(ref f) = &self.config.autogen_warning {
            out.new_line_if_not_start();
            write!(out, "{}", f);
            out.new_line();
        }

        if self.config.no_includes
            && self.config.sys_includes().is_empty()
            && self.config.includes().is_empty()
            && (self.config.cython.cimports.is_empty())
            && self.config.after_includes.is_none()
        {
            return;
        }

        out.new_line_if_not_start();

        if !&self.config.no_includes {
            out.write("from libc.stdint cimport int8_t, int16_t, int32_t, int64_t, intptr_t");
            out.new_line();
            out.write("from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t, uintptr_t");
            out.new_line();
            out.write("cdef extern from *");
            out.open_brace();
            out.write("ctypedef bint bool");
            out.new_line();
            out.write("ctypedef struct va_list");
            out.new_line();
            out.close_brace(false);
        }

        for (module, names) in &self.config.cython.cimports {
            write!(out, "from {} cimport {}", module, names.join(", "));
            out.new_line();
        }

        if let Some(ref line) = &self.config.after_includes {
            write!(out, "{}", line);
            out.new_line();
        }
    }