private static void generateBitsetProperty(
        final StringBuilder sb,
        final String propertyName,
        final Token token,
        final String indent,
        final String className)
    {
        final String bitsetName = formatClassName(token.applicableTypeName());
        final int offset = token.offset();

        new Formatter(sb).format(
            indent + "    func (m *%4$s) %2$s() *%1$s {\n" +
            indent + "        m._%2$s.Wrap(m.buffer, m.offset + %3$d, m.actingVersion, m.bufferLength)\n" +
            indent + "        return &m._%2$s\n" +
            indent + "    }\n",
            bitsetName,
            propertyName,
            offset,
            className);

        new Formatter(sb).format("\n" +
            indent + "    func (m *%3$s) %1$sEncodingLength() int {\n" +
            indent + "        return %2$d\n" +
            indent + "    }\n",
            propertyName,
            token.encoding().primitiveType().size(),
            className);
    }
Create a new Golang language {@link CodeGenerator}.

@param ir                            for the messages and types.
@param shouldDecodeUnknownEnumValues generate support for unknown enum values when decoding.
@param outputManager                 for generating the codecs to.
sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/golang/flyweight/GolangFlyweightGenerator.java