Skip to content

Commit

Permalink
generator
Browse files Browse the repository at this point in the history
  • Loading branch information
fischerscode committed May 11, 2024
1 parent ccf104d commit 64850a2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 24 deletions.
46 changes: 23 additions & 23 deletions protoc_plugin/lib/src/enum_generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,10 @@ class EnumGenerator extends ProtobufContainer {
out.println('@$coreImportPrefix.Deprecated(\'This enum is deprecated\')');
}
out.addAnnotatedBlock(
'class $classname extends $protobufImportPrefix.ProtobufEnum {',
'enum $classname implements $protobufImportPrefix.ProtobufEnum {',
'}\n', [
NamedLocation(
name: classname, fieldPathSegment: fieldPath, start: 'class '.length)
name: classname, fieldPathSegment: fieldPath, start: 'enum '.length)
], () {
// -----------------------------------------------------------------
// Define enum types.
Expand All @@ -137,16 +137,14 @@ class EnumGenerator extends ProtobufContainer {
'@$coreImportPrefix.Deprecated(\'This enum value is deprecated\')');
}

out.printlnAnnotated(
'static const $classname $name = '
'$classname._(${val.number}, $conditionalValName);',
[
NamedLocation(
name: name,
fieldPathSegment: fieldPathSegment,
start: 'static const $classname '.length)
]);
out.printlnAnnotated('$name(${val.number}, $conditionalValName),', [
NamedLocation(
name: name, fieldPathSegment: fieldPathSegment, start: 0)
]);
out.println();
}
out.println(';');

if (_aliases.isNotEmpty) {
out.println();
for (var i = 0; i < _aliases.length; i++) {
Expand All @@ -164,27 +162,29 @@ class EnumGenerator extends ProtobufContainer {
]);
}
}
out.println();

out.println('static const $coreImportPrefix.List<$classname> values ='
' <$classname> [');
for (final val in _canonicalValues) {
final name = dartNames[val.name];
out.println(' $name,');
}
out.println('];');
out.println();

out.println(
'static final $coreImportPrefix.Map<$coreImportPrefix.int, $classname> _byValue ='
' $protobufImportPrefix.ProtobufEnum.initByValue(values);');
out.println('static $classname? valueOf($coreImportPrefix.int value) =>'
' _byValue[value];');
out.println();

out.println();
out.println('@$coreImportPrefix.override');
out.println('final $coreImportPrefix.int value;');
out.println();
out.println('@$coreImportPrefix.override');
out.println('final $coreImportPrefix.String name;');
out.println();
out.println('const $classname(this.value, this.name);');
out.println();
out.println(
'const $classname._($coreImportPrefix.int v, $coreImportPrefix.String n) '
': super(v, n);');
"/// Returns this enum's [name] or the [value] if names are not"
' represented.');
out.println('@$coreImportPrefix.override');
out.println("$coreImportPrefix.String toString() => name == '' ? "
'value.toString() : name;');
});
}

Expand Down
1 change: 0 additions & 1 deletion protoc_plugin/lib/src/file_generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -644,7 +644,6 @@ class FileGenerator extends ProtobufContainer {
// Generated code. Do not modify.
// source: ${descriptor.name}
//
// @dart = 2.12
''');
ignorelines.forEach(out.println);
out.println('');
Expand Down

0 comments on commit 64850a2

Please sign in to comment.