generate static method

void generate(
  1. IndentingWriter out,
  2. OneofNames oneof,
  3. List<ProtobufField> fields,
  4. List<int> parentPath,
)

Implementation

static void generate(
  IndentingWriter out,
  OneofNames oneof,
  List<ProtobufField> fields,
  List<int> parentPath,
) {
  final enumName = oneof.oneofEnumName;
  out.addAnnotatedBlock(
    'enum $enumName {',
    '}\n',
    [
      NamedLocation(
        name: enumName,
        fieldPathSegment: Paths.buildOneofPath(parentPath, oneof),
        start: 'enum '.length,
      ),
    ],
    () {
      for (final field in fields) {
        final name = oneofEnumMemberName(field.memberNames!.fieldName);
        out.printlnAnnotated('$name, ', [
          NamedLocation(
            name: name,
            fieldPathSegment: Paths.buildFieldPath(parentPath, field),
            start: 0,
          ),
        ]);
      }
      out.println('notSet');
    },
  );
}