fn output_preamble()

in serde-generate/src/golang.rs [109:145]


    fn output_preamble(&mut self, registry: &Registry) -> Result<()> {
        writeln!(
            self.out,
            "package {}\n\n",
            self.generator.config.module_name
        )?;
        // Go does not support disabling warnings on unused imports.
        if registry.is_empty() {
            return Ok(());
        }
        writeln!(self.out, "import (")?;
        self.out.indent();
        if self.generator.config.serialization
            && (Self::has_enum(registry) || !self.generator.config.encodings.is_empty())
        {
            writeln!(self.out, "\"fmt\"")?;
        }
        if self.generator.config.serialization || Self::has_int128(registry) {
            writeln!(self.out, "\"{}/serde\"", self.generator.serde_module_path)?;
        }
        if self.generator.config.serialization {
            for encoding in &self.generator.config.encodings {
                writeln!(
                    self.out,
                    "\"{}/{}\"",
                    self.generator.serde_module_path,
                    encoding.name()
                )?;
            }
        }
        for path in self.generator.config.external_definitions.keys() {
            writeln!(self.out, "\"{}\"", path)?;
        }
        self.out.unindent();
        writeln!(self.out, ")\n")?;
        Ok(())
    }