fn write_union()

in src/bindgen/language_backend/cython.rs [224:258]


    fn write_union<W: Write>(&mut self, out: &mut SourceWriter<W>, u: &Union) {
        let condition = u.cfg.to_condition(self.config);
        condition.write_before(self.config, out);

        self.write_documentation(out, &u.documentation);

        out.write(self.config.style.cython_def());

        out.write("union");

        write!(out, " {}", u.export_name);

        out.open_brace();

        // Emit the pre_body section, if relevant
        if let Some(body) = &self.config.export.pre_body(&u.path) {
            out.write_raw_block(body);
            out.new_line();
        }

        out.write_vertical_source_list(self, &u.fields, ListType::Cap(";"), Self::write_field);
        if u.fields.is_empty() {
            out.write("pass");
        }

        // Emit the post_body section, if relevant
        if let Some(body) = &self.config.export.post_body(&u.path) {
            out.new_line();
            out.write_raw_block(body);
        }

        out.close_brace(true);

        condition.write_after(self.config, out);
    }