Make PbFieldType members public (#1027)
To be able to have JSON decoders as libraries that are conditionally imported
based on the compilation target, this makes `PbFieldType` members public.
diff --git a/protobuf/CHANGELOG.md b/protobuf/CHANGELOG.md
index 9d10a96..a987ef8 100644
--- a/protobuf/CHANGELOG.md
+++ b/protobuf/CHANGELOG.md
@@ -5,7 +5,11 @@
using different encoding/decoding libraries based on the target platform.
([#1026])
+* Some of the private `PbFieldType` members are made public, to allow using
+ them in internal libraries. This type is for internal use only. ([#1027])
+
[#1026]: https://github.com/google/protobuf.dart/pull/1026
+[#1027]: https://github.com/google/protobuf.dart/pull/1027
## 4.1.1
diff --git a/protobuf/lib/protobuf.dart b/protobuf/lib/protobuf.dart
index 2c6ef83..d1e569b 100644
--- a/protobuf/lib/protobuf.dart
+++ b/protobuf/lib/protobuf.dart
@@ -16,4 +16,6 @@
FieldSet,
FieldSetInternalExtension,
GeneratedMessageInternalExtension,
- MapFieldInfoInternalExtension;
+ MapFieldInfoInternalExtension,
+ mapKeyFieldNumber,
+ mapValueFieldNumber;
diff --git a/protobuf/lib/src/protobuf/builder_info.dart b/protobuf/lib/src/protobuf/builder_info.dart
index 24af811..d21b3df 100644
--- a/protobuf/lib/src/protobuf/builder_info.dart
+++ b/protobuf/lib/src/protobuf/builder_info.dart
@@ -274,7 +274,10 @@
// Repeated, not a message, group, or enum.
void p<T>(int tagNumber, String name, int fieldType, {String? protoName}) {
- assert(!_isGroupOrMessage(fieldType) && !_isEnum(fieldType));
+ assert(
+ !PbFieldType.isGroupOrMessage(fieldType) &&
+ !PbFieldType.isEnum(fieldType),
+ );
addRepeated<T>(
tagNumber,
name,
@@ -298,7 +301,9 @@
ProtobufEnum? defaultEnumValue,
String? protoName,
}) {
- assert(_isGroupOrMessage(fieldType) || _isEnum(fieldType));
+ assert(
+ PbFieldType.isGroupOrMessage(fieldType) || PbFieldType.isEnum(fieldType),
+ );
addRepeated<T>(
tagNumber,
name,
diff --git a/protobuf/lib/src/protobuf/coded_buffer.dart b/protobuf/lib/src/protobuf/coded_buffer.dart
index 9210265..0150e1b 100644
--- a/protobuf/lib/src/protobuf/coded_buffer.dart
+++ b/protobuf/lib/src/protobuf/coded_buffer.dart
@@ -54,24 +54,24 @@
// Ignore required/optional packed/unpacked.
var fieldType = fi.type;
- fieldType &= ~(PbFieldType._PACKED_BIT | PbFieldType._REQUIRED_BIT);
+ fieldType &= ~(PbFieldType.PACKED_BIT | PbFieldType.REQUIRED_BIT);
switch (fieldType) {
- case PbFieldType._OPTIONAL_BOOL:
+ case PbFieldType.OPTIONAL_BOOL:
fs._setFieldUnchecked(meta, fi, input.readBool());
break;
- case PbFieldType._OPTIONAL_BYTES:
+ case PbFieldType.OPTIONAL_BYTES:
fs._setFieldUnchecked(meta, fi, input.readBytes());
break;
- case PbFieldType._OPTIONAL_STRING:
+ case PbFieldType.OPTIONAL_STRING:
fs._setFieldUnchecked(meta, fi, input.readString());
break;
- case PbFieldType._OPTIONAL_FLOAT:
+ case PbFieldType.OPTIONAL_FLOAT:
fs._setFieldUnchecked(meta, fi, input.readFloat());
break;
- case PbFieldType._OPTIONAL_DOUBLE:
+ case PbFieldType.OPTIONAL_DOUBLE:
fs._setFieldUnchecked(meta, fi, input.readDouble());
break;
- case PbFieldType._OPTIONAL_ENUM:
+ case PbFieldType.OPTIONAL_ENUM:
final rawValue = input.readEnum();
final value = meta._decodeEnum(tagNumber, registry, rawValue);
if (value == null) {
@@ -81,7 +81,7 @@
fs._setFieldUnchecked(meta, fi, value);
}
break;
- case PbFieldType._OPTIONAL_GROUP:
+ case PbFieldType.OPTIONAL_GROUP:
final subMessage = meta._makeEmptyMessage(tagNumber, registry);
final oldValue = fs._getFieldOrNull(fi);
if (oldValue != null) {
@@ -90,37 +90,37 @@
input.readGroup(tagNumber, subMessage, registry);
fs._setFieldUnchecked(meta, fi, subMessage);
break;
- case PbFieldType._OPTIONAL_INT32:
+ case PbFieldType.OPTIONAL_INT32:
fs._setFieldUnchecked(meta, fi, input.readInt32());
break;
- case PbFieldType._OPTIONAL_INT64:
+ case PbFieldType.OPTIONAL_INT64:
fs._setFieldUnchecked(meta, fi, input.readInt64());
break;
- case PbFieldType._OPTIONAL_SINT32:
+ case PbFieldType.OPTIONAL_SINT32:
fs._setFieldUnchecked(meta, fi, input.readSint32());
break;
- case PbFieldType._OPTIONAL_SINT64:
+ case PbFieldType.OPTIONAL_SINT64:
fs._setFieldUnchecked(meta, fi, input.readSint64());
break;
- case PbFieldType._OPTIONAL_UINT32:
+ case PbFieldType.OPTIONAL_UINT32:
fs._setFieldUnchecked(meta, fi, input.readUint32());
break;
- case PbFieldType._OPTIONAL_UINT64:
+ case PbFieldType.OPTIONAL_UINT64:
fs._setFieldUnchecked(meta, fi, input.readUint64());
break;
- case PbFieldType._OPTIONAL_FIXED32:
+ case PbFieldType.OPTIONAL_FIXED32:
fs._setFieldUnchecked(meta, fi, input.readFixed32());
break;
- case PbFieldType._OPTIONAL_FIXED64:
+ case PbFieldType.OPTIONAL_FIXED64:
fs._setFieldUnchecked(meta, fi, input.readFixed64());
break;
- case PbFieldType._OPTIONAL_SFIXED32:
+ case PbFieldType.OPTIONAL_SFIXED32:
fs._setFieldUnchecked(meta, fi, input.readSfixed32());
break;
- case PbFieldType._OPTIONAL_SFIXED64:
+ case PbFieldType.OPTIONAL_SFIXED64:
fs._setFieldUnchecked(meta, fi, input.readSfixed64());
break;
- case PbFieldType._OPTIONAL_MESSAGE:
+ case PbFieldType.OPTIONAL_MESSAGE:
final GeneratedMessage? oldValue = fs._getFieldOrNull(fi);
if (oldValue != null) {
input.readMessage(oldValue, registry);
@@ -130,7 +130,7 @@
fs._setFieldUnchecked(meta, fi, subMessage);
}
break;
- case PbFieldType._REPEATED_BOOL:
+ case PbFieldType.REPEATED_BOOL:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -150,17 +150,17 @@
list._addUnchecked(input.readBool());
}
break;
- case PbFieldType._REPEATED_BYTES:
+ case PbFieldType.REPEATED_BYTES:
final list = fs._ensureRepeatedField(meta, fi);
list._checkModifiable('add');
list._addUnchecked(input.readBytes());
break;
- case PbFieldType._REPEATED_STRING:
+ case PbFieldType.REPEATED_STRING:
final list = fs._ensureRepeatedField(meta, fi);
list._checkModifiable('add');
list._addUnchecked(input.readString());
break;
- case PbFieldType._REPEATED_FLOAT:
+ case PbFieldType.REPEATED_FLOAT:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -177,7 +177,7 @@
list._addUnchecked(input.readFloat());
}
break;
- case PbFieldType._REPEATED_DOUBLE:
+ case PbFieldType.REPEATED_DOUBLE:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -194,7 +194,7 @@
list._addUnchecked(input.readDouble());
}
break;
- case PbFieldType._REPEATED_ENUM:
+ case PbFieldType.REPEATED_ENUM:
final list = fs._ensureRepeatedField(meta, fi);
_readPackableToListEnum(
list,
@@ -206,13 +206,13 @@
registry,
);
break;
- case PbFieldType._REPEATED_GROUP:
+ case PbFieldType.REPEATED_GROUP:
final subMessage = meta._makeEmptyMessage(tagNumber, registry);
input.readGroup(tagNumber, subMessage, registry);
final list = fs._ensureRepeatedField(meta, fi);
list.add(subMessage);
break;
- case PbFieldType._REPEATED_INT32:
+ case PbFieldType.REPEATED_INT32:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -229,7 +229,7 @@
list._addUnchecked(input.readInt32());
}
break;
- case PbFieldType._REPEATED_INT64:
+ case PbFieldType.REPEATED_INT64:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -246,7 +246,7 @@
list._addUnchecked(input.readInt64());
}
break;
- case PbFieldType._REPEATED_SINT32:
+ case PbFieldType.REPEATED_SINT32:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -263,7 +263,7 @@
list._addUnchecked(input.readSint32());
}
break;
- case PbFieldType._REPEATED_SINT64:
+ case PbFieldType.REPEATED_SINT64:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -280,7 +280,7 @@
list._addUnchecked(input.readSint64());
}
break;
- case PbFieldType._REPEATED_UINT32:
+ case PbFieldType.REPEATED_UINT32:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -297,7 +297,7 @@
list._addUnchecked(input.readUint32());
}
break;
- case PbFieldType._REPEATED_UINT64:
+ case PbFieldType.REPEATED_UINT64:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -314,7 +314,7 @@
list._addUnchecked(input.readUint64());
}
break;
- case PbFieldType._REPEATED_FIXED32:
+ case PbFieldType.REPEATED_FIXED32:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -331,7 +331,7 @@
list._addUnchecked(input.readFixed32());
}
break;
- case PbFieldType._REPEATED_FIXED64:
+ case PbFieldType.REPEATED_FIXED64:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -348,7 +348,7 @@
list._addUnchecked(input.readFixed64());
}
break;
- case PbFieldType._REPEATED_SFIXED32:
+ case PbFieldType.REPEATED_SFIXED32:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -365,7 +365,7 @@
list._addUnchecked(input.readSfixed32());
}
break;
- case PbFieldType._REPEATED_SFIXED64:
+ case PbFieldType.REPEATED_SFIXED64:
final list = fs._ensureRepeatedField(meta, fi);
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
final limit = input.readInt32();
@@ -382,13 +382,13 @@
list._addUnchecked(input.readSfixed64());
}
break;
- case PbFieldType._REPEATED_MESSAGE:
+ case PbFieldType.REPEATED_MESSAGE:
final subMessage = meta._makeEmptyMessage(tagNumber, registry);
input.readMessage(subMessage, registry);
final list = fs._ensureRepeatedField(meta, fi);
list.add(subMessage);
break;
- case PbFieldType._MAP:
+ case PbFieldType.MAP:
final mapFieldInfo = fi as MapFieldInfo;
final mapEntryMeta = mapFieldInfo.mapEntryBuilderInfo;
fs
diff --git a/protobuf/lib/src/protobuf/coded_buffer_writer.dart b/protobuf/lib/src/protobuf/coded_buffer_writer.dart
index 312e8fd..8809ce2 100644
--- a/protobuf/lib/src/protobuf/coded_buffer_writer.dart
+++ b/protobuf/lib/src/protobuf/coded_buffer_writer.dart
@@ -65,9 +65,9 @@
}
void writeField(int fieldNumber, int fieldType, Object? fieldValue) {
- final valueType = PbFieldType._baseType(fieldType);
+ final valueType = PbFieldType.baseType(fieldType);
- if ((fieldType & PbFieldType._PACKED_BIT) != 0) {
+ if ((fieldType & PbFieldType.PACKED_BIT) != 0) {
final list = fieldValue as List;
if (list.isNotEmpty) {
_writeTag(fieldNumber, WIRETYPE_LENGTH_DELIMITED);
@@ -80,7 +80,7 @@
return;
}
- if ((fieldType & PbFieldType._MAP_BIT) != 0) {
+ if ((fieldType & PbFieldType.MAP_BIT) != 0) {
final map = fieldValue as PbMap;
final keyWireFormat = _wireTypes[_valueTypeIndex(map.keyFieldType)];
final valueWireFormat = _wireTypes[_valueTypeIndex(map.valueFieldType)];
@@ -107,7 +107,7 @@
final wireFormat = _wireTypes[_valueTypeIndex(valueType)];
- if ((fieldType & PbFieldType._REPEATED_BIT) != 0) {
+ if ((fieldType & PbFieldType.REPEATED_BIT) != 0) {
final list = fieldValue as List;
for (var i = 0; i < list.length; i++) {
_writeValue(fieldNumber, valueType, list[i], wireFormat);
@@ -353,10 +353,10 @@
void _writeValueAs(int valueType, dynamic value) {
switch (valueType) {
- case PbFieldType._BOOL_BIT:
+ case PbFieldType.BOOL_BIT:
_writeVarint32(value ? 1 : 0);
break;
- case PbFieldType._BYTES_BIT:
+ case PbFieldType.BYTES_BIT:
final List<int> bytes = value;
if (bytes is Uint8List) {
_writeBytesNoTag(bytes);
@@ -366,7 +366,7 @@
_writeBytesNoTag(Uint8List.fromList(bytes));
}
break;
- case PbFieldType._STRING_BIT:
+ case PbFieldType.STRING_BIT:
final String string = value;
if (string.isEmpty) {
_writeEmptyBytes();
@@ -374,17 +374,17 @@
_writeBytesNoTag(const Utf8Encoder().convert(string));
}
break;
- case PbFieldType._DOUBLE_BIT:
+ case PbFieldType.DOUBLE_BIT:
_writeDouble(value);
break;
- case PbFieldType._FLOAT_BIT:
+ case PbFieldType.FLOAT_BIT:
_writeFloat(value);
break;
- case PbFieldType._ENUM_BIT:
+ case PbFieldType.ENUM_BIT:
final ProtobufEnum enum_ = value;
_writeVarint32(enum_.value & 0xffffffff);
break;
- case PbFieldType._GROUP_BIT:
+ case PbFieldType.GROUP_BIT:
// `value` is `UnknownFieldSet` or `GeneratedMessage`. Test for
// `UnknownFieldSet` as it doesn't have subtypes, so the type test will
// be fast.
@@ -399,37 +399,37 @@
message.writeToCodedBufferWriter(this);
}
break;
- case PbFieldType._INT32_BIT:
+ case PbFieldType.INT32_BIT:
_writeVarint64(Int64(value));
break;
- case PbFieldType._INT64_BIT:
+ case PbFieldType.INT64_BIT:
_writeVarint64(value);
break;
- case PbFieldType._SINT32_BIT:
+ case PbFieldType.SINT32_BIT:
_writeVarint32(_encodeZigZag32(value));
break;
- case PbFieldType._SINT64_BIT:
+ case PbFieldType.SINT64_BIT:
_writeVarint64(_encodeZigZag64(value));
break;
- case PbFieldType._UINT32_BIT:
+ case PbFieldType.UINT32_BIT:
_writeVarint32(value);
break;
- case PbFieldType._UINT64_BIT:
+ case PbFieldType.UINT64_BIT:
_writeVarint64(value);
break;
- case PbFieldType._FIXED32_BIT:
+ case PbFieldType.FIXED32_BIT:
_writeInt32(value);
break;
- case PbFieldType._FIXED64_BIT:
+ case PbFieldType.FIXED64_BIT:
_writeInt64(value);
break;
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.SFIXED32_BIT:
_writeInt32(value);
break;
- case PbFieldType._SFIXED64_BIT:
+ case PbFieldType.SFIXED64_BIT:
_writeInt64(value);
break;
- case PbFieldType._MESSAGE_BIT:
+ case PbFieldType.MESSAGE_BIT:
final mark = _startLengthDelimited();
final GeneratedMessage msg = value;
msg.writeToCodedBufferWriter(this);
@@ -459,7 +459,7 @@
) {
_writeTag(fieldNumber, wireFormat);
_writeValueAs(valueType, value);
- if (valueType == PbFieldType._GROUP_BIT) {
+ if (valueType == PbFieldType.GROUP_BIT) {
_writeTag(fieldNumber, WIRETYPE_END_GROUP);
}
}
diff --git a/protobuf/lib/src/protobuf/extension_registry.dart b/protobuf/lib/src/protobuf/extension_registry.dart
index 2535b49..f7de71a 100644
--- a/protobuf/lib/src/protobuf/extension_registry.dart
+++ b/protobuf/lib/src/protobuf/extension_registry.dart
@@ -181,7 +181,7 @@
final messageMapDynamic = message._fieldSet._values[field.index!];
if (messageMapDynamic == null) continue;
final PbMap messageMap = messageMapDynamic;
- if (_isGroupOrMessage(field.valueFieldType)) {
+ if (PbFieldType.isGroupOrMessage(field.valueFieldType)) {
for (final key in messageMap.keys) {
final GeneratedMessage value = messageMap[key];
final reparsedValue = _reparseMessage(value, extensionRegistry);
diff --git a/protobuf/lib/src/protobuf/field_error.dart b/protobuf/lib/src/protobuf/field_error.dart
index c3dda12..0381cc7 100644
--- a/protobuf/lib/src/protobuf/field_error.dart
+++ b/protobuf/lib/src/protobuf/field_error.dart
@@ -10,53 +10,53 @@
/// For enums, group, and message fields, this check is only approximate,
/// because the exact type isn't included in [fieldType].
String? _getFieldError(int fieldType, var value) {
- switch (PbFieldType._baseType(fieldType)) {
- case PbFieldType._BOOL_BIT:
+ switch (PbFieldType.baseType(fieldType)) {
+ case PbFieldType.BOOL_BIT:
if (value is! bool) return 'not type bool';
return null;
- case PbFieldType._BYTES_BIT:
+ case PbFieldType.BYTES_BIT:
if (value is! List) return 'not List';
return null;
- case PbFieldType._STRING_BIT:
+ case PbFieldType.STRING_BIT:
if (value is! String) return 'not type String';
return null;
- case PbFieldType._FLOAT_BIT:
+ case PbFieldType.FLOAT_BIT:
if (value is! double) return 'not type double';
if (!_isFloat32(value)) return 'out of range for float';
return null;
- case PbFieldType._DOUBLE_BIT:
+ case PbFieldType.DOUBLE_BIT:
if (value is! double) return 'not type double';
return null;
- case PbFieldType._ENUM_BIT:
+ case PbFieldType.ENUM_BIT:
if (value is! ProtobufEnum) return 'not type ProtobufEnum';
return null;
- case PbFieldType._INT32_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.SFIXED32_BIT:
if (value is! int) return 'not type int';
if (!_isSigned32(value)) return 'out of range for signed 32-bit int';
return null;
- case PbFieldType._UINT32_BIT:
- case PbFieldType._FIXED32_BIT:
+ case PbFieldType.UINT32_BIT:
+ case PbFieldType.FIXED32_BIT:
if (value is! int) return 'not type int';
if (!_isUnsigned32(value)) return 'out of range for unsigned 32-bit int';
return null;
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._UINT64_BIT:
- case PbFieldType._FIXED64_BIT:
- case PbFieldType._SFIXED64_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.UINT64_BIT:
+ case PbFieldType.FIXED64_BIT:
+ case PbFieldType.SFIXED64_BIT:
// We always use the full range of the same Dart type.
// It's up to the caller to treat the Int64 as signed or unsigned.
// See: https://github.com/google/protobuf.dart/issues/44
if (value is! Int64) return 'not Int64';
return null;
- case PbFieldType._GROUP_BIT:
- case PbFieldType._MESSAGE_BIT:
+ case PbFieldType.GROUP_BIT:
+ case PbFieldType.MESSAGE_BIT:
if (value is! GeneratedMessage) return 'not a GeneratedMessage';
return null;
default:
@@ -74,33 +74,33 @@
/// @nodoc
CheckFunc getCheckFunction(int fieldType) {
switch (fieldType & ~0x7) {
- case PbFieldType._BOOL_BIT:
- case PbFieldType._BYTES_BIT:
- case PbFieldType._STRING_BIT:
- case PbFieldType._DOUBLE_BIT:
- case PbFieldType._ENUM_BIT:
- case PbFieldType._GROUP_BIT:
- case PbFieldType._MESSAGE_BIT:
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._SFIXED64_BIT:
- case PbFieldType._UINT64_BIT:
- case PbFieldType._FIXED64_BIT:
+ case PbFieldType.BOOL_BIT:
+ case PbFieldType.BYTES_BIT:
+ case PbFieldType.STRING_BIT:
+ case PbFieldType.DOUBLE_BIT:
+ case PbFieldType.ENUM_BIT:
+ case PbFieldType.GROUP_BIT:
+ case PbFieldType.MESSAGE_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.SFIXED64_BIT:
+ case PbFieldType.UINT64_BIT:
+ case PbFieldType.FIXED64_BIT:
// We always use the full range of the same Dart type.
// It's up to the caller to treat the Int64 as signed or unsigned.
// See: https://github.com/google/protobuf.dart/issues/44
return _checkNotNull;
- case PbFieldType._FLOAT_BIT:
+ case PbFieldType.FLOAT_BIT:
return _checkFloat;
- case PbFieldType._INT32_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.SFIXED32_BIT:
return _checkSigned32;
- case PbFieldType._UINT32_BIT:
- case PbFieldType._FIXED32_BIT:
+ case PbFieldType.UINT32_BIT:
+ case PbFieldType.FIXED32_BIT:
return _checkUnsigned32;
}
throw ArgumentError('check function not implemented: $fieldType');
diff --git a/protobuf/lib/src/protobuf/field_info.dart b/protobuf/lib/src/protobuf/field_info.dart
index 87d76c2..dbdd7d0 100644
--- a/protobuf/lib/src/protobuf/field_info.dart
+++ b/protobuf/lib/src/protobuf/field_info.dart
@@ -114,9 +114,11 @@
_protoName = protoName,
assert(type != 0),
assert(
- !_isGroupOrMessage(type) || subBuilder != null || _isMapField(type),
+ !PbFieldType.isGroupOrMessage(type) ||
+ subBuilder != null ||
+ PbFieldType.isMapField(type),
),
- assert(!_isEnum(type) || valueOf != null);
+ assert(!PbFieldType.isEnum(type) || valueOf != null);
// Represents a field that has been removed by a program transformation.
FieldInfo.dummy(this.index)
@@ -144,8 +146,8 @@
String? protoName,
}) : makeDefault = (() => PbList<T>(check: check)),
_protoName = protoName,
- assert(_isRepeated(type)),
- assert(!_isEnum(type) || valueOf != null);
+ assert(PbFieldType.isRepeated(type)),
+ assert(!PbFieldType.isEnum(type) || valueOf != null);
static MakeDefaultFunc? findMakeDefault(int type, dynamic defaultOrMaker) {
if (defaultOrMaker == null) return PbFieldType.defaultForType(type);
@@ -157,11 +159,11 @@
/// been removed by a program transformation.
bool get _isDummy => tagNumber == 0;
- bool get isRequired => _isRequired(type);
- bool get isRepeated => _isRepeated(type);
- bool get isGroupOrMessage => _isGroupOrMessage(type);
- bool get isEnum => _isEnum(type);
- bool get isMapField => _isMapField(type);
+ bool get isRequired => PbFieldType.isRequired(type);
+ bool get isRepeated => PbFieldType.isRepeated(type);
+ bool get isGroupOrMessage => PbFieldType.isGroupOrMessage(type);
+ bool get isEnum => PbFieldType.isEnum(type);
+ bool get isMapField => PbFieldType.isMapField(type);
/// Returns a read-only default value for a field. Unlike
/// [GeneratedMessage.getField], doesn't create a repeated field.
@@ -176,7 +178,9 @@
/// That is, it doesn't contain any required fields that aren't initialized.
bool _hasRequiredValues(dynamic value) {
if (value == null) return !isRequired; // missing is okay if optional
- if (!_isGroupOrMessage(type)) return true; // primitive and present
+ if (!PbFieldType.isGroupOrMessage(type)) {
+ return true; // primitive and present
+ }
if (!isRepeated) {
// A required message: recurse.
@@ -199,7 +203,7 @@
void _appendInvalidFields(List<String> problems, value, String prefix) {
if (value == null) {
if (isRequired) problems.add('$prefix$name');
- } else if (!_isGroupOrMessage(type)) {
+ } else if (!PbFieldType.isGroupOrMessage(type)) {
// primitive and present
} else if (!isRepeated) {
// Required message/group: recurse.
@@ -293,7 +297,7 @@
this.valueCreator, {
ProtobufEnum? defaultEnumValue,
String? protoName,
- }) : assert(_isMapField(type)),
+ }) : assert(PbFieldType.isMapField(type)),
super(
name,
tagNumber,
@@ -303,7 +307,7 @@
defaultEnumValue: defaultEnumValue,
protoName: protoName,
) {
- assert(!_isEnum(type) || valueOf != null);
+ assert(!PbFieldType.isEnum(type) || valueOf != null);
}
FieldInfo get valueFieldInfo =>
diff --git a/protobuf/lib/src/protobuf/field_set.dart b/protobuf/lib/src/protobuf/field_set.dart
index aee73b7..980c03c 100644
--- a/protobuf/lib/src/protobuf/field_set.dart
+++ b/protobuf/lib/src/protobuf/field_set.dart
@@ -626,11 +626,11 @@
}
hash = HashUtils.combine(hash, fi.tagNumber);
- if (_isBytes(fi.type)) {
+ if (PbFieldType.isBytes(fi.type)) {
// Bytes are represented as a List<int> (Usually with byte-data).
// We special case that to match our equality semantics.
hash = HashUtils.combine(hash, HashUtils.hashObjects(value));
- } else if (!_isEnum(fi.type)) {
+ } else if (!PbFieldType.isEnum(fi.type)) {
hash = HashUtils.combine(hash, value.hashCode);
} else if (fi.isRepeated) {
final PbList list = value;
@@ -772,7 +772,7 @@
final MapFieldInfo<dynamic, dynamic> f = fi as dynamic;
final PbMap<dynamic, dynamic> map =
f._ensureMapField(meta, this) as dynamic;
- if (_isGroupOrMessage(f.valueFieldType)) {
+ if (PbFieldType.isGroupOrMessage(f.valueFieldType)) {
final PbMap<dynamic, GeneratedMessage> fieldValueMap = fieldValue;
for (final entry in fieldValueMap.entries) {
map[entry.key] = entry.value.deepCopy();
@@ -784,7 +784,7 @@
}
if (fi.isRepeated) {
- if (_isGroupOrMessage(otherFi.type)) {
+ if (PbFieldType.isGroupOrMessage(otherFi.type)) {
// fieldValue must be a PbList of GeneratedMessage.
final PbList<GeneratedMessage> pbList = fieldValue;
final repeatedFields = fi._ensureRepeatedField(meta, this);
diff --git a/protobuf/lib/src/protobuf/field_type.dart b/protobuf/lib/src/protobuf/field_type.dart
index ad3ac24..67b3194 100644
--- a/protobuf/lib/src/protobuf/field_type.dart
+++ b/protobuf/lib/src/protobuf/field_type.dart
@@ -5,253 +5,254 @@
// ignore_for_file: constant_identifier_names,non_constant_identifier_names
part of 'internal.dart';
-bool _isRepeated(int fieldType) => (fieldType & PbFieldType._REPEATED_BIT) != 0;
-
-bool _isRequired(int fieldType) => (fieldType & PbFieldType._REQUIRED_BIT) != 0;
-
-bool _isEnum(int fieldType) =>
- PbFieldType._baseType(fieldType) == PbFieldType._ENUM_BIT;
-
-bool _isBytes(int fieldType) =>
- PbFieldType._baseType(fieldType) == PbFieldType._BYTES_BIT;
-
-bool _isGroupOrMessage(int fieldType) =>
- (fieldType & (PbFieldType._GROUP_BIT | PbFieldType._MESSAGE_BIT)) != 0;
-
-bool _isMapField(int fieldType) => (fieldType & PbFieldType._MAP_BIT) != 0;
-
/// Defines constants and functions for dealing with fieldType bits.
class PbFieldType {
+ static bool isRepeated(int fieldType) =>
+ (fieldType & PbFieldType.REPEATED_BIT) != 0;
+
+ static bool isRequired(int fieldType) =>
+ (fieldType & PbFieldType.REQUIRED_BIT) != 0;
+
+ static bool isEnum(int fieldType) =>
+ PbFieldType.baseType(fieldType) == PbFieldType.ENUM_BIT;
+
+ static bool isBytes(int fieldType) =>
+ PbFieldType.baseType(fieldType) == PbFieldType.BYTES_BIT;
+
+ static bool isGroupOrMessage(int fieldType) =>
+ (fieldType & (PbFieldType.GROUP_BIT | PbFieldType.MESSAGE_BIT)) != 0;
+
+ static bool isMapField(int fieldType) =>
+ (fieldType & PbFieldType.MAP_BIT) != 0;
+
/// Returns the base field type without any of the required, repeated
/// and packed bits.
- static int _baseType(int fieldType) =>
- fieldType & ~(_REQUIRED_BIT | _REPEATED_BIT | _PACKED_BIT | _MAP_BIT);
+ static int baseType(int fieldType) =>
+ fieldType & ~(REQUIRED_BIT | REPEATED_BIT | PACKED_BIT | MAP_BIT);
static MakeDefaultFunc? defaultForType(int type) {
switch (type) {
- case _OPTIONAL_BOOL:
- case _REQUIRED_BOOL:
- return _BOOL_FALSE;
- case _OPTIONAL_BYTES:
- case _REQUIRED_BYTES:
- return _BYTES_EMPTY;
- case _OPTIONAL_STRING:
- case _REQUIRED_STRING:
- return _STRING_EMPTY;
- case _OPTIONAL_FLOAT:
- case _REQUIRED_FLOAT:
- case _OPTIONAL_DOUBLE:
- case _REQUIRED_DOUBLE:
- return _DOUBLE_ZERO;
- case _OPTIONAL_INT32:
- case _REQUIRED_INT32:
- case _OPTIONAL_INT64:
- case _REQUIRED_INT64:
- case _OPTIONAL_SINT32:
- case _REQUIRED_SINT32:
- case _OPTIONAL_SINT64:
- case _REQUIRED_SINT64:
- case _OPTIONAL_UINT32:
- case _REQUIRED_UINT32:
- case _OPTIONAL_UINT64:
- case _REQUIRED_UINT64:
- case _OPTIONAL_FIXED32:
- case _REQUIRED_FIXED32:
- case _OPTIONAL_FIXED64:
- case _REQUIRED_FIXED64:
- case _OPTIONAL_SFIXED32:
- case _REQUIRED_SFIXED32:
- case _OPTIONAL_SFIXED64:
- case _REQUIRED_SFIXED64:
- return _INT_ZERO;
+ case OPTIONAL_BOOL:
+ case REQUIRED_BOOL:
+ return BOOL_FALSE;
+ case OPTIONAL_BYTES:
+ case REQUIRED_BYTES:
+ return BYTES_EMPTY;
+ case OPTIONAL_STRING:
+ case REQUIRED_STRING:
+ return STRING_EMPTY;
+ case OPTIONAL_FLOAT:
+ case REQUIRED_FLOAT:
+ case OPTIONAL_DOUBLE:
+ case REQUIRED_DOUBLE:
+ return DOUBLE_ZERO;
+ case OPTIONAL_INT32:
+ case REQUIRED_INT32:
+ case OPTIONAL_INT64:
+ case REQUIRED_INT64:
+ case OPTIONAL_SINT32:
+ case REQUIRED_SINT32:
+ case OPTIONAL_SINT64:
+ case REQUIRED_SINT64:
+ case OPTIONAL_UINT32:
+ case REQUIRED_UINT32:
+ case OPTIONAL_UINT64:
+ case REQUIRED_UINT64:
+ case OPTIONAL_FIXED32:
+ case REQUIRED_FIXED32:
+ case OPTIONAL_FIXED64:
+ case REQUIRED_FIXED64:
+ case OPTIONAL_SFIXED32:
+ case REQUIRED_SFIXED32:
+ case OPTIONAL_SFIXED64:
+ case REQUIRED_SFIXED64:
+ return INT_ZERO;
default:
return null;
}
}
// Closures commonly used by initializers.
- static String _STRING_EMPTY() => '';
- static List<int> _BYTES_EMPTY() => <int>[];
- static bool _BOOL_FALSE() => false;
- static int _INT_ZERO() => 0;
- static double _DOUBLE_ZERO() => 0.0;
+ static String STRING_EMPTY() => '';
+ static List<int> BYTES_EMPTY() => <int>[];
+ static bool BOOL_FALSE() => false;
+ static int INT_ZERO() => 0;
+ static double DOUBLE_ZERO() => 0.0;
- static const int _REQUIRED_BIT = 0x1;
- static const int _REPEATED_BIT = 0x2;
- static const int _PACKED_BIT = 0x4;
+ static const int REQUIRED_BIT = 0x1;
+ static const int REPEATED_BIT = 0x2;
+ static const int PACKED_BIT = 0x4;
- static const int _BOOL_BIT = 0x10;
- static const int _BYTES_BIT = 0x20;
- static const int _STRING_BIT = 0x40;
- static const int _DOUBLE_BIT = 0x80;
- static const int _FLOAT_BIT = 0x100;
- static const int _ENUM_BIT = 0x200;
- static const int _GROUP_BIT = 0x400;
- static const int _INT32_BIT = 0x800;
- static const int _INT64_BIT = 0x1000;
- static const int _SINT32_BIT = 0x2000;
- static const int _SINT64_BIT = 0x4000;
- static const int _UINT32_BIT = 0x8000;
- static const int _UINT64_BIT = 0x10000;
- static const int _FIXED32_BIT = 0x20000;
- static const int _FIXED64_BIT = 0x40000;
- static const int _SFIXED32_BIT = 0x80000;
- static const int _SFIXED64_BIT = 0x100000;
- static const int _MESSAGE_BIT = 0x200000;
- static const int _MAP_BIT = 0x400000;
+ static const int BOOL_BIT = 0x10;
+ static const int BYTES_BIT = 0x20;
+ static const int STRING_BIT = 0x40;
+ static const int DOUBLE_BIT = 0x80;
+ static const int FLOAT_BIT = 0x100;
+ static const int ENUM_BIT = 0x200;
+ static const int GROUP_BIT = 0x400;
+ static const int INT32_BIT = 0x800;
+ static const int INT64_BIT = 0x1000;
+ static const int SINT32_BIT = 0x2000;
+ static const int SINT64_BIT = 0x4000;
+ static const int UINT32_BIT = 0x8000;
+ static const int UINT64_BIT = 0x10000;
+ static const int FIXED32_BIT = 0x20000;
+ static const int FIXED64_BIT = 0x40000;
+ static const int SFIXED32_BIT = 0x80000;
+ static const int SFIXED64_BIT = 0x100000;
+ static const int MESSAGE_BIT = 0x200000;
+ static const int MAP_BIT = 0x400000;
- static const int _OPTIONAL_BOOL = _BOOL_BIT;
- static const int _OPTIONAL_BYTES = _BYTES_BIT;
- static const int _OPTIONAL_STRING = _STRING_BIT;
- static const int _OPTIONAL_FLOAT = _FLOAT_BIT;
- static const int _OPTIONAL_DOUBLE = _DOUBLE_BIT;
- static const int _OPTIONAL_ENUM = _ENUM_BIT;
- static const int _OPTIONAL_GROUP = _GROUP_BIT;
- static const int _OPTIONAL_INT32 = _INT32_BIT;
- static const int _OPTIONAL_INT64 = _INT64_BIT;
- static const int _OPTIONAL_SINT32 = _SINT32_BIT;
- static const int _OPTIONAL_SINT64 = _SINT64_BIT;
- static const int _OPTIONAL_UINT32 = _UINT32_BIT;
- static const int _OPTIONAL_UINT64 = _UINT64_BIT;
- static const int _OPTIONAL_FIXED32 = _FIXED32_BIT;
- static const int _OPTIONAL_FIXED64 = _FIXED64_BIT;
- static const int _OPTIONAL_SFIXED32 = _SFIXED32_BIT;
- static const int _OPTIONAL_SFIXED64 = _SFIXED64_BIT;
- static const int _OPTIONAL_MESSAGE = _MESSAGE_BIT;
+ static const int OPTIONAL_BOOL = BOOL_BIT;
+ static const int OPTIONAL_BYTES = BYTES_BIT;
+ static const int OPTIONAL_STRING = STRING_BIT;
+ static const int OPTIONAL_FLOAT = FLOAT_BIT;
+ static const int OPTIONAL_DOUBLE = DOUBLE_BIT;
+ static const int OPTIONAL_ENUM = ENUM_BIT;
+ static const int OPTIONAL_GROUP = GROUP_BIT;
+ static const int OPTIONAL_INT32 = INT32_BIT;
+ static const int OPTIONAL_INT64 = INT64_BIT;
+ static const int OPTIONAL_SINT32 = SINT32_BIT;
+ static const int OPTIONAL_SINT64 = SINT64_BIT;
+ static const int OPTIONAL_UINT32 = UINT32_BIT;
+ static const int OPTIONAL_UINT64 = UINT64_BIT;
+ static const int OPTIONAL_FIXED32 = FIXED32_BIT;
+ static const int OPTIONAL_FIXED64 = FIXED64_BIT;
+ static const int OPTIONAL_SFIXED32 = SFIXED32_BIT;
+ static const int OPTIONAL_SFIXED64 = SFIXED64_BIT;
+ static const int OPTIONAL_MESSAGE = MESSAGE_BIT;
- static const int _REQUIRED_BOOL = _REQUIRED_BIT | _BOOL_BIT;
- static const int _REQUIRED_BYTES = _REQUIRED_BIT | _BYTES_BIT;
- static const int _REQUIRED_STRING = _REQUIRED_BIT | _STRING_BIT;
- static const int _REQUIRED_FLOAT = _REQUIRED_BIT | _FLOAT_BIT;
- static const int _REQUIRED_DOUBLE = _REQUIRED_BIT | _DOUBLE_BIT;
- static const int _REQUIRED_ENUM = _REQUIRED_BIT | _ENUM_BIT;
- static const int _REQUIRED_GROUP = _REQUIRED_BIT | _GROUP_BIT;
- static const int _REQUIRED_INT32 = _REQUIRED_BIT | _INT32_BIT;
- static const int _REQUIRED_INT64 = _REQUIRED_BIT | _INT64_BIT;
- static const int _REQUIRED_SINT32 = _REQUIRED_BIT | _SINT32_BIT;
- static const int _REQUIRED_SINT64 = _REQUIRED_BIT | _SINT64_BIT;
- static const int _REQUIRED_UINT32 = _REQUIRED_BIT | _UINT32_BIT;
- static const int _REQUIRED_UINT64 = _REQUIRED_BIT | _UINT64_BIT;
- static const int _REQUIRED_FIXED32 = _REQUIRED_BIT | _FIXED32_BIT;
- static const int _REQUIRED_FIXED64 = _REQUIRED_BIT | _FIXED64_BIT;
- static const int _REQUIRED_SFIXED32 = _REQUIRED_BIT | _SFIXED32_BIT;
- static const int _REQUIRED_SFIXED64 = _REQUIRED_BIT | _SFIXED64_BIT;
- static const int _REQUIRED_MESSAGE = _REQUIRED_BIT | _MESSAGE_BIT;
+ static const int REQUIRED_BOOL = REQUIRED_BIT | BOOL_BIT;
+ static const int REQUIRED_BYTES = REQUIRED_BIT | BYTES_BIT;
+ static const int REQUIRED_STRING = REQUIRED_BIT | STRING_BIT;
+ static const int REQUIRED_FLOAT = REQUIRED_BIT | FLOAT_BIT;
+ static const int REQUIRED_DOUBLE = REQUIRED_BIT | DOUBLE_BIT;
+ static const int REQUIRED_ENUM = REQUIRED_BIT | ENUM_BIT;
+ static const int REQUIRED_GROUP = REQUIRED_BIT | GROUP_BIT;
+ static const int REQUIRED_INT32 = REQUIRED_BIT | INT32_BIT;
+ static const int REQUIRED_INT64 = REQUIRED_BIT | INT64_BIT;
+ static const int REQUIRED_SINT32 = REQUIRED_BIT | SINT32_BIT;
+ static const int REQUIRED_SINT64 = REQUIRED_BIT | SINT64_BIT;
+ static const int REQUIRED_UINT32 = REQUIRED_BIT | UINT32_BIT;
+ static const int REQUIRED_UINT64 = REQUIRED_BIT | UINT64_BIT;
+ static const int REQUIRED_FIXED32 = REQUIRED_BIT | FIXED32_BIT;
+ static const int REQUIRED_FIXED64 = REQUIRED_BIT | FIXED64_BIT;
+ static const int REQUIRED_SFIXED32 = REQUIRED_BIT | SFIXED32_BIT;
+ static const int REQUIRED_SFIXED64 = REQUIRED_BIT | SFIXED64_BIT;
+ static const int REQUIRED_MESSAGE = REQUIRED_BIT | MESSAGE_BIT;
- static const int _REPEATED_BOOL = _REPEATED_BIT | _BOOL_BIT;
- static const int _REPEATED_BYTES = _REPEATED_BIT | _BYTES_BIT;
- static const int _REPEATED_STRING = _REPEATED_BIT | _STRING_BIT;
- static const int _REPEATED_FLOAT = _REPEATED_BIT | _FLOAT_BIT;
- static const int _REPEATED_DOUBLE = _REPEATED_BIT | _DOUBLE_BIT;
- static const int _REPEATED_ENUM = _REPEATED_BIT | _ENUM_BIT;
- static const int _REPEATED_GROUP = _REPEATED_BIT | _GROUP_BIT;
- static const int _REPEATED_INT32 = _REPEATED_BIT | _INT32_BIT;
- static const int _REPEATED_INT64 = _REPEATED_BIT | _INT64_BIT;
- static const int _REPEATED_SINT32 = _REPEATED_BIT | _SINT32_BIT;
- static const int _REPEATED_SINT64 = _REPEATED_BIT | _SINT64_BIT;
- static const int _REPEATED_UINT32 = _REPEATED_BIT | _UINT32_BIT;
- static const int _REPEATED_UINT64 = _REPEATED_BIT | _UINT64_BIT;
- static const int _REPEATED_FIXED32 = _REPEATED_BIT | _FIXED32_BIT;
- static const int _REPEATED_FIXED64 = _REPEATED_BIT | _FIXED64_BIT;
- static const int _REPEATED_SFIXED32 = _REPEATED_BIT | _SFIXED32_BIT;
- static const int _REPEATED_SFIXED64 = _REPEATED_BIT | _SFIXED64_BIT;
- static const int _REPEATED_MESSAGE = _REPEATED_BIT | _MESSAGE_BIT;
+ static const int REPEATED_BOOL = REPEATED_BIT | BOOL_BIT;
+ static const int REPEATED_BYTES = REPEATED_BIT | BYTES_BIT;
+ static const int REPEATED_STRING = REPEATED_BIT | STRING_BIT;
+ static const int REPEATED_FLOAT = REPEATED_BIT | FLOAT_BIT;
+ static const int REPEATED_DOUBLE = REPEATED_BIT | DOUBLE_BIT;
+ static const int REPEATED_ENUM = REPEATED_BIT | ENUM_BIT;
+ static const int REPEATED_GROUP = REPEATED_BIT | GROUP_BIT;
+ static const int REPEATED_INT32 = REPEATED_BIT | INT32_BIT;
+ static const int REPEATED_INT64 = REPEATED_BIT | INT64_BIT;
+ static const int REPEATED_SINT32 = REPEATED_BIT | SINT32_BIT;
+ static const int REPEATED_SINT64 = REPEATED_BIT | SINT64_BIT;
+ static const int REPEATED_UINT32 = REPEATED_BIT | UINT32_BIT;
+ static const int REPEATED_UINT64 = REPEATED_BIT | UINT64_BIT;
+ static const int REPEATED_FIXED32 = REPEATED_BIT | FIXED32_BIT;
+ static const int REPEATED_FIXED64 = REPEATED_BIT | FIXED64_BIT;
+ static const int REPEATED_SFIXED32 = REPEATED_BIT | SFIXED32_BIT;
+ static const int REPEATED_SFIXED64 = REPEATED_BIT | SFIXED64_BIT;
+ static const int REPEATED_MESSAGE = REPEATED_BIT | MESSAGE_BIT;
- static const int _PACKED_BOOL = _REPEATED_BIT | _PACKED_BIT | _BOOL_BIT;
- static const int _PACKED_FLOAT = _REPEATED_BIT | _PACKED_BIT | _FLOAT_BIT;
- static const int _PACKED_DOUBLE = _REPEATED_BIT | _PACKED_BIT | _DOUBLE_BIT;
- static const int _PACKED_ENUM = _REPEATED_BIT | _PACKED_BIT | _ENUM_BIT;
- static const int _PACKED_INT32 = _REPEATED_BIT | _PACKED_BIT | _INT32_BIT;
- static const int _PACKED_INT64 = _REPEATED_BIT | _PACKED_BIT | _INT64_BIT;
- static const int _PACKED_SINT32 = _REPEATED_BIT | _PACKED_BIT | _SINT32_BIT;
- static const int _PACKED_SINT64 = _REPEATED_BIT | _PACKED_BIT | _SINT64_BIT;
- static const int _PACKED_UINT32 = _REPEATED_BIT | _PACKED_BIT | _UINT32_BIT;
- static const int _PACKED_UINT64 = _REPEATED_BIT | _PACKED_BIT | _UINT64_BIT;
- static const int _PACKED_FIXED32 = _REPEATED_BIT | _PACKED_BIT | _FIXED32_BIT;
- static const int _PACKED_FIXED64 = _REPEATED_BIT | _PACKED_BIT | _FIXED64_BIT;
- static const int _PACKED_SFIXED32 =
- _REPEATED_BIT | _PACKED_BIT | _SFIXED32_BIT;
- static const int _PACKED_SFIXED64 =
- _REPEATED_BIT | _PACKED_BIT | _SFIXED64_BIT;
+ static const int PACKED_BOOL = REPEATED_BIT | PACKED_BIT | BOOL_BIT;
+ static const int PACKED_FLOAT = REPEATED_BIT | PACKED_BIT | FLOAT_BIT;
+ static const int PACKED_DOUBLE = REPEATED_BIT | PACKED_BIT | DOUBLE_BIT;
+ static const int PACKED_ENUM = REPEATED_BIT | PACKED_BIT | ENUM_BIT;
+ static const int PACKED_INT32 = REPEATED_BIT | PACKED_BIT | INT32_BIT;
+ static const int PACKED_INT64 = REPEATED_BIT | PACKED_BIT | INT64_BIT;
+ static const int PACKED_SINT32 = REPEATED_BIT | PACKED_BIT | SINT32_BIT;
+ static const int PACKED_SINT64 = REPEATED_BIT | PACKED_BIT | SINT64_BIT;
+ static const int PACKED_UINT32 = REPEATED_BIT | PACKED_BIT | UINT32_BIT;
+ static const int PACKED_UINT64 = REPEATED_BIT | PACKED_BIT | UINT64_BIT;
+ static const int PACKED_FIXED32 = REPEATED_BIT | PACKED_BIT | FIXED32_BIT;
+ static const int PACKED_FIXED64 = REPEATED_BIT | PACKED_BIT | FIXED64_BIT;
+ static const int PACKED_SFIXED32 = REPEATED_BIT | PACKED_BIT | SFIXED32_BIT;
+ static const int PACKED_SFIXED64 = REPEATED_BIT | PACKED_BIT | SFIXED64_BIT;
- static const int _MAP = _MAP_BIT | _MESSAGE_BIT;
+ static const int MAP = MAP_BIT | MESSAGE_BIT;
// Short names for use in generated code.
// _O_ptional.
- static const int OB = _OPTIONAL_BOOL;
- static const int OY = _OPTIONAL_BYTES;
- static const int OS = _OPTIONAL_STRING;
- static const int OF = _OPTIONAL_FLOAT;
- static const int OD = _OPTIONAL_DOUBLE;
- static const int OE = _OPTIONAL_ENUM;
- static const int OG = _OPTIONAL_GROUP;
- static const int O3 = _OPTIONAL_INT32;
- static const int O6 = _OPTIONAL_INT64;
- static const int OS3 = _OPTIONAL_SINT32;
- static const int OS6 = _OPTIONAL_SINT64;
- static const int OU3 = _OPTIONAL_UINT32;
- static const int OU6 = _OPTIONAL_UINT64;
- static const int OF3 = _OPTIONAL_FIXED32;
- static const int OF6 = _OPTIONAL_FIXED64;
- static const int OSF3 = _OPTIONAL_SFIXED32;
- static const int OSF6 = _OPTIONAL_SFIXED64;
- static const int OM = _OPTIONAL_MESSAGE;
+ static const int OB = OPTIONAL_BOOL;
+ static const int OY = OPTIONAL_BYTES;
+ static const int OS = OPTIONAL_STRING;
+ static const int OF = OPTIONAL_FLOAT;
+ static const int OD = OPTIONAL_DOUBLE;
+ static const int OE = OPTIONAL_ENUM;
+ static const int OG = OPTIONAL_GROUP;
+ static const int O3 = OPTIONAL_INT32;
+ static const int O6 = OPTIONAL_INT64;
+ static const int OS3 = OPTIONAL_SINT32;
+ static const int OS6 = OPTIONAL_SINT64;
+ static const int OU3 = OPTIONAL_UINT32;
+ static const int OU6 = OPTIONAL_UINT64;
+ static const int OF3 = OPTIONAL_FIXED32;
+ static const int OF6 = OPTIONAL_FIXED64;
+ static const int OSF3 = OPTIONAL_SFIXED32;
+ static const int OSF6 = OPTIONAL_SFIXED64;
+ static const int OM = OPTIONAL_MESSAGE;
// re_Q_uired.
- static const int QB = _REQUIRED_BOOL;
- static const int QY = _REQUIRED_BYTES;
- static const int QS = _REQUIRED_STRING;
- static const int QF = _REQUIRED_FLOAT;
- static const int QD = _REQUIRED_DOUBLE;
- static const int QE = _REQUIRED_ENUM;
- static const int QG = _REQUIRED_GROUP;
- static const int Q3 = _REQUIRED_INT32;
- static const int Q6 = _REQUIRED_INT64;
- static const int QS3 = _REQUIRED_SINT32;
- static const int QS6 = _REQUIRED_SINT64;
- static const int QU3 = _REQUIRED_UINT32;
- static const int QU6 = _REQUIRED_UINT64;
- static const int QF3 = _REQUIRED_FIXED32;
- static const int QF6 = _REQUIRED_FIXED64;
- static const int QSF3 = _REQUIRED_SFIXED32;
- static const int QSF6 = _REQUIRED_SFIXED64;
- static const int QM = _REQUIRED_MESSAGE;
+ static const int QB = REQUIRED_BOOL;
+ static const int QY = REQUIRED_BYTES;
+ static const int QS = REQUIRED_STRING;
+ static const int QF = REQUIRED_FLOAT;
+ static const int QD = REQUIRED_DOUBLE;
+ static const int QE = REQUIRED_ENUM;
+ static const int QG = REQUIRED_GROUP;
+ static const int Q3 = REQUIRED_INT32;
+ static const int Q6 = REQUIRED_INT64;
+ static const int QS3 = REQUIRED_SINT32;
+ static const int QS6 = REQUIRED_SINT64;
+ static const int QU3 = REQUIRED_UINT32;
+ static const int QU6 = REQUIRED_UINT64;
+ static const int QF3 = REQUIRED_FIXED32;
+ static const int QF6 = REQUIRED_FIXED64;
+ static const int QSF3 = REQUIRED_SFIXED32;
+ static const int QSF6 = REQUIRED_SFIXED64;
+ static const int QM = REQUIRED_MESSAGE;
// re_P_eated.
- static const int PB = _REPEATED_BOOL;
- static const int PY = _REPEATED_BYTES;
- static const int PS = _REPEATED_STRING;
- static const int PF = _REPEATED_FLOAT;
- static const int PD = _REPEATED_DOUBLE;
- static const int PE = _REPEATED_ENUM;
- static const int PG = _REPEATED_GROUP;
- static const int P3 = _REPEATED_INT32;
- static const int P6 = _REPEATED_INT64;
- static const int PS3 = _REPEATED_SINT32;
- static const int PS6 = _REPEATED_SINT64;
- static const int PU3 = _REPEATED_UINT32;
- static const int PU6 = _REPEATED_UINT64;
- static const int PF3 = _REPEATED_FIXED32;
- static const int PF6 = _REPEATED_FIXED64;
- static const int PSF3 = _REPEATED_SFIXED32;
- static const int PSF6 = _REPEATED_SFIXED64;
- static const int PM = _REPEATED_MESSAGE;
+ static const int PB = REPEATED_BOOL;
+ static const int PY = REPEATED_BYTES;
+ static const int PS = REPEATED_STRING;
+ static const int PF = REPEATED_FLOAT;
+ static const int PD = REPEATED_DOUBLE;
+ static const int PE = REPEATED_ENUM;
+ static const int PG = REPEATED_GROUP;
+ static const int P3 = REPEATED_INT32;
+ static const int P6 = REPEATED_INT64;
+ static const int PS3 = REPEATED_SINT32;
+ static const int PS6 = REPEATED_SINT64;
+ static const int PU3 = REPEATED_UINT32;
+ static const int PU6 = REPEATED_UINT64;
+ static const int PF3 = REPEATED_FIXED32;
+ static const int PF6 = REPEATED_FIXED64;
+ static const int PSF3 = REPEATED_SFIXED32;
+ static const int PSF6 = REPEATED_SFIXED64;
+ static const int PM = REPEATED_MESSAGE;
// pac_K_ed.
- static const int KB = _PACKED_BOOL;
- static const int KE = _PACKED_ENUM;
- static const int KF = _PACKED_FLOAT;
- static const int KD = _PACKED_DOUBLE;
- static const int K3 = _PACKED_INT32;
- static const int K6 = _PACKED_INT64;
- static const int KS3 = _PACKED_SINT32;
- static const int KS6 = _PACKED_SINT64;
- static const int KU3 = _PACKED_UINT32;
- static const int KU6 = _PACKED_UINT64;
- static const int KF3 = _PACKED_FIXED32;
- static const int KF6 = _PACKED_FIXED64;
- static const int KSF3 = _PACKED_SFIXED32;
- static const int KSF6 = _PACKED_SFIXED64;
+ static const int KB = PACKED_BOOL;
+ static const int KE = PACKED_ENUM;
+ static const int KF = PACKED_FLOAT;
+ static const int KD = PACKED_DOUBLE;
+ static const int K3 = PACKED_INT32;
+ static const int K6 = PACKED_INT64;
+ static const int KS3 = PACKED_SINT32;
+ static const int KS6 = PACKED_SINT64;
+ static const int KU3 = PACKED_UINT32;
+ static const int KU6 = PACKED_UINT64;
+ static const int KF3 = PACKED_FIXED32;
+ static const int KF6 = PACKED_FIXED64;
+ static const int KSF3 = PACKED_SFIXED32;
+ static const int KSF6 = PACKED_SFIXED64;
- static const int M = _MAP;
+ static const int M = MAP;
}
diff --git a/protobuf/lib/src/protobuf/generated_message.dart b/protobuf/lib/src/protobuf/generated_message.dart
index 28f4992..35caa69 100644
--- a/protobuf/lib/src/protobuf/generated_message.dart
+++ b/protobuf/lib/src/protobuf/generated_message.dart
@@ -418,7 +418,7 @@
/// Sets the value of a non-repeated extension field to [value].
void setExtension(Extension extension, Object value) {
- if (_isRepeated(extension.type)) {
+ if (PbFieldType.isRepeated(extension.type)) {
throw ArgumentError(
_fieldSet._setFieldFailedMessage(
extension,
diff --git a/protobuf/lib/src/protobuf/json.dart b/protobuf/lib/src/protobuf/json.dart
index f217567..5021fc0 100644
--- a/protobuf/lib/src/protobuf/json.dart
+++ b/protobuf/lib/src/protobuf/json.dart
@@ -6,24 +6,24 @@
Map<String, dynamic> _writeToJsonMap(FieldSet fs) {
dynamic convertToMap(dynamic fieldValue, int fieldType) {
- final baseType = PbFieldType._baseType(fieldType);
+ final baseType = PbFieldType.baseType(fieldType);
- if (_isRepeated(fieldType)) {
+ if (PbFieldType.isRepeated(fieldType)) {
final PbList list = fieldValue;
return List.from(list.map((e) => convertToMap(e, baseType)));
}
switch (baseType) {
- case PbFieldType._BOOL_BIT:
- case PbFieldType._STRING_BIT:
- case PbFieldType._INT32_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._UINT32_BIT:
- case PbFieldType._FIXED32_BIT:
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.BOOL_BIT:
+ case PbFieldType.STRING_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.UINT32_BIT:
+ case PbFieldType.FIXED32_BIT:
+ case PbFieldType.SFIXED32_BIT:
return fieldValue;
- case PbFieldType._FLOAT_BIT:
- case PbFieldType._DOUBLE_BIT:
+ case PbFieldType.FLOAT_BIT:
+ case PbFieldType.DOUBLE_BIT:
final value = fieldValue as double;
if (value.isNaN) {
return nan;
@@ -35,22 +35,22 @@
return fieldValue.toInt();
}
return value;
- case PbFieldType._BYTES_BIT:
+ case PbFieldType.BYTES_BIT:
// Encode 'bytes' as a base64-encoded string.
return base64Encode(fieldValue as List<int>);
- case PbFieldType._ENUM_BIT:
+ case PbFieldType.ENUM_BIT:
final ProtobufEnum enum_ = fieldValue;
return enum_.value; // assume |value| < 2^52
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._SFIXED64_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.SFIXED64_BIT:
return fieldValue.toString();
- case PbFieldType._UINT64_BIT:
- case PbFieldType._FIXED64_BIT:
+ case PbFieldType.UINT64_BIT:
+ case PbFieldType.FIXED64_BIT:
final Int64 int_ = fieldValue;
return int_.toStringUnsigned();
- case PbFieldType._GROUP_BIT:
- case PbFieldType._MESSAGE_BIT:
+ case PbFieldType.GROUP_BIT:
+ case PbFieldType.MESSAGE_BIT:
final GeneratedMessage msg = fieldValue;
return msg.writeToJsonMap();
default:
@@ -73,7 +73,7 @@
if (value == null || (value is List && value.isEmpty)) {
continue; // It's missing, repeated, or an empty byte array.
}
- if (_isMapField(fi.type)) {
+ if (PbFieldType.isMapField(fi.type)) {
result['${fi.tagNumber}'] = writeMap(
value,
fi as MapFieldInfo<dynamic, dynamic>,
@@ -246,8 +246,8 @@
ExtensionRegistry? registry,
) {
String expectedType; // for exception message
- switch (PbFieldType._baseType(fieldType)) {
- case PbFieldType._BOOL_BIT:
+ switch (PbFieldType.baseType(fieldType)) {
+ case PbFieldType.BOOL_BIT:
if (value is bool) {
return value;
} else if (value is String) {
@@ -265,20 +265,20 @@
}
expectedType = 'bool (true, false, "true", "false", 1, 0)';
break;
- case PbFieldType._BYTES_BIT:
+ case PbFieldType.BYTES_BIT:
if (value is String) {
return base64Decode(value);
}
expectedType = 'Base64 String';
break;
- case PbFieldType._STRING_BIT:
+ case PbFieldType.STRING_BIT:
if (value is String) {
return value;
}
expectedType = 'String';
break;
- case PbFieldType._FLOAT_BIT:
- case PbFieldType._DOUBLE_BIT:
+ case PbFieldType.FLOAT_BIT:
+ case PbFieldType.DOUBLE_BIT:
// Allow quoted values, although we don't emit them.
if (value is double) {
return value;
@@ -289,7 +289,7 @@
}
expectedType = 'num or stringified num';
break;
- case PbFieldType._ENUM_BIT:
+ case PbFieldType.ENUM_BIT:
// Allow quoted values, although we don't emit them.
if (value is String) {
value = int.parse(value);
@@ -302,15 +302,15 @@
}
expectedType = 'int or stringified int';
break;
- case PbFieldType._INT32_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.SFIXED32_BIT:
if (value is int) return value;
if (value is String) return int.parse(value);
expectedType = 'int or stringified int';
break;
- case PbFieldType._UINT32_BIT:
- case PbFieldType._FIXED32_BIT:
+ case PbFieldType.UINT32_BIT:
+ case PbFieldType.FIXED32_BIT:
int? validatedValue;
if (value is int) validatedValue = value;
if (value is String) validatedValue = int.parse(value);
@@ -320,17 +320,17 @@
if (validatedValue != null) return validatedValue;
expectedType = 'int or stringified int';
break;
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._UINT64_BIT:
- case PbFieldType._FIXED64_BIT:
- case PbFieldType._SFIXED64_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.UINT64_BIT:
+ case PbFieldType.FIXED64_BIT:
+ case PbFieldType.SFIXED64_BIT:
if (value is int) return Int64(value);
if (value is String) return Int64.parseInt(value);
expectedType = 'int or stringified int';
break;
- case PbFieldType._GROUP_BIT:
- case PbFieldType._MESSAGE_BIT:
+ case PbFieldType.GROUP_BIT:
+ case PbFieldType.MESSAGE_BIT:
if (value is Map) {
final messageValue = value as Map<String, dynamic>;
final subMessage = meta._makeEmptyMessage(tagNumber, registry);
diff --git a/protobuf/lib/src/protobuf/pb_map.dart b/protobuf/lib/src/protobuf/pb_map.dart
index f9c5379..2816eb6 100644
--- a/protobuf/lib/src/protobuf/pb_map.dart
+++ b/protobuf/lib/src/protobuf/pb_map.dart
@@ -4,6 +4,9 @@
part of 'internal.dart';
+const mapKeyFieldNumber = 1;
+const mapValueFieldNumber = 2;
+
/// A [MapBase] implementation used for protobuf `map` fields.
class PbMap<K, V> extends MapBase<K, V> {
/// Key type of the map. Per proto2 and proto3 specs, this needs to be an
@@ -121,7 +124,7 @@
PbMap freeze() {
_isReadOnly = true;
- if (_isGroupOrMessage(valueFieldType)) {
+ if (PbFieldType.isGroupOrMessage(valueFieldType)) {
for (final subMessage in values as Iterable<GeneratedMessage>) {
subMessage.freeze();
}
diff --git a/protobuf/lib/src/protobuf/proto3_json.dart b/protobuf/lib/src/protobuf/proto3_json.dart
index c1dbe11..0fe4849 100644
--- a/protobuf/lib/src/protobuf/proto3_json.dart
+++ b/protobuf/lib/src/protobuf/proto3_json.dart
@@ -6,26 +6,26 @@
Object? _writeToProto3Json(FieldSet fs, TypeRegistry typeRegistry) {
String? convertToMapKey(dynamic key, int keyType) {
- final baseType = PbFieldType._baseType(keyType);
+ final baseType = PbFieldType.baseType(keyType);
- assert(!_isRepeated(keyType));
+ assert(!PbFieldType.isRepeated(keyType));
switch (baseType) {
- case PbFieldType._BOOL_BIT:
+ case PbFieldType.BOOL_BIT:
return key ? 'true' : 'false';
- case PbFieldType._STRING_BIT:
+ case PbFieldType.STRING_BIT:
return key;
- case PbFieldType._UINT64_BIT:
+ case PbFieldType.UINT64_BIT:
return (key as Int64).toStringUnsigned();
- case PbFieldType._INT32_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._UINT32_BIT:
- case PbFieldType._FIXED32_BIT:
- case PbFieldType._SFIXED32_BIT:
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._SFIXED64_BIT:
- case PbFieldType._FIXED64_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.UINT32_BIT:
+ case PbFieldType.FIXED32_BIT:
+ case PbFieldType.SFIXED32_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.SFIXED64_BIT:
+ case PbFieldType.FIXED64_BIT:
return key.toString();
default:
throw StateError('Not a valid key type $keyType');
@@ -35,33 +35,33 @@
Object? valueToProto3Json(dynamic fieldValue, int? fieldType) {
if (fieldValue == null) return null;
- if (_isGroupOrMessage(fieldType!)) {
+ if (PbFieldType.isGroupOrMessage(fieldType!)) {
return _writeToProto3Json(
(fieldValue as GeneratedMessage)._fieldSet,
typeRegistry,
);
- } else if (_isEnum(fieldType)) {
+ } else if (PbFieldType.isEnum(fieldType)) {
return (fieldValue as ProtobufEnum).name;
} else {
- final baseType = PbFieldType._baseType(fieldType);
+ final baseType = PbFieldType.baseType(fieldType);
switch (baseType) {
- case PbFieldType._BOOL_BIT:
+ case PbFieldType.BOOL_BIT:
return fieldValue as bool;
- case PbFieldType._STRING_BIT:
+ case PbFieldType.STRING_BIT:
return fieldValue;
- case PbFieldType._INT32_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._UINT32_BIT:
- case PbFieldType._FIXED32_BIT:
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.UINT32_BIT:
+ case PbFieldType.FIXED32_BIT:
+ case PbFieldType.SFIXED32_BIT:
return fieldValue;
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._SFIXED64_BIT:
- case PbFieldType._FIXED64_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.SFIXED64_BIT:
+ case PbFieldType.FIXED64_BIT:
return fieldValue.toString();
- case PbFieldType._FLOAT_BIT:
- case PbFieldType._DOUBLE_BIT:
+ case PbFieldType.FLOAT_BIT:
+ case PbFieldType.DOUBLE_BIT:
final double value = fieldValue;
if (value.isNaN) {
return nan;
@@ -73,9 +73,9 @@
return value.toInt();
}
return value;
- case PbFieldType._UINT64_BIT:
+ case PbFieldType.UINT64_BIT:
return (fieldValue as Int64).toStringUnsigned();
- case PbFieldType._BYTES_BIT:
+ case PbFieldType.BYTES_BIT:
return base64Encode(fieldValue);
default:
throw StateError(
@@ -176,13 +176,13 @@
void recursionHelper(Object? json, FieldSet fieldSet) {
Object? convertProto3JsonValue(Object value, FieldInfo fieldInfo) {
final fieldType = fieldInfo.type;
- switch (PbFieldType._baseType(fieldType)) {
- case PbFieldType._BOOL_BIT:
+ switch (PbFieldType.baseType(fieldType)) {
+ case PbFieldType.BOOL_BIT:
if (value is bool) {
return value;
}
throw context.parseException('Expected bool value', json);
- case PbFieldType._BYTES_BIT:
+ case PbFieldType.BYTES_BIT:
if (value is String) {
Uint8List result;
try {
@@ -199,13 +199,13 @@
'Expected bytes encoded as base64 String',
value,
);
- case PbFieldType._STRING_BIT:
+ case PbFieldType.STRING_BIT:
if (value is String) {
return value;
}
throw context.parseException('Expected String value', value);
- case PbFieldType._FLOAT_BIT:
- case PbFieldType._DOUBLE_BIT:
+ case PbFieldType.FLOAT_BIT:
+ case PbFieldType.DOUBLE_BIT:
if (value is double) {
return value;
} else if (value is num) {
@@ -221,7 +221,7 @@
'Expected a double represented as a String or number',
value,
);
- case PbFieldType._ENUM_BIT:
+ case PbFieldType.ENUM_BIT:
if (value is String) {
// TODO(sigurdm): Do we want to avoid linear search here? Measure...
final result =
@@ -245,8 +245,8 @@
'Expected enum as a string or integer',
value,
);
- case PbFieldType._UINT32_BIT:
- case PbFieldType._FIXED32_BIT:
+ case PbFieldType.UINT32_BIT:
+ case PbFieldType.FIXED32_BIT:
int result;
if (value is int) {
result = value;
@@ -259,9 +259,9 @@
);
}
return _check32BitUnsignedProto3(result, context);
- case PbFieldType._INT32_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.SFIXED32_BIT:
int result;
if (value is int) {
result = value;
@@ -275,7 +275,7 @@
}
_check32BitSignedProto3(result, context);
return result;
- case PbFieldType._UINT64_BIT:
+ case PbFieldType.UINT64_BIT:
Int64 result;
if (value is int) {
result = Int64(value);
@@ -288,10 +288,10 @@
);
}
return result;
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._FIXED64_BIT:
- case PbFieldType._SFIXED64_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.FIXED64_BIT:
+ case PbFieldType.SFIXED64_BIT:
if (value is int) return Int64(value);
if (value is String) {
Int64 result;
@@ -309,8 +309,8 @@
'Expected int or stringified int',
value,
);
- case PbFieldType._GROUP_BIT:
- case PbFieldType._MESSAGE_BIT:
+ case PbFieldType.GROUP_BIT:
+ case PbFieldType.MESSAGE_BIT:
final subMessage = fieldInfo.subBuilder!();
recursionHelper(value, subMessage._fieldSet);
return subMessage;
@@ -320,8 +320,8 @@
}
Object decodeMapKey(String key, int fieldType) {
- switch (PbFieldType._baseType(fieldType)) {
- case PbFieldType._BOOL_BIT:
+ switch (PbFieldType.baseType(fieldType)) {
+ case PbFieldType.BOOL_BIT:
switch (key) {
case 'true':
return true;
@@ -333,26 +333,26 @@
key,
);
}
- case PbFieldType._STRING_BIT:
+ case PbFieldType.STRING_BIT:
return key;
- case PbFieldType._UINT64_BIT:
+ case PbFieldType.UINT64_BIT:
// TODO(sigurdm): We do not throw on negative values here.
// That would probably require going via bignum.
return _tryParse64BitProto3(json, key, context);
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._SFIXED64_BIT:
- case PbFieldType._FIXED64_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.SFIXED64_BIT:
+ case PbFieldType.FIXED64_BIT:
return _tryParse64BitProto3(json, key, context);
- case PbFieldType._INT32_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._FIXED32_BIT:
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.FIXED32_BIT:
+ case PbFieldType.SFIXED32_BIT:
return _check32BitSignedProto3(
_tryParse32BitProto3(key, context),
context,
);
- case PbFieldType._UINT32_BIT:
+ case PbFieldType.UINT32_BIT:
return _check32BitUnsignedProto3(
_tryParse32BitProto3(key, context),
context,
@@ -400,7 +400,7 @@
}
}
- if (_isMapField(fieldInfo.type)) {
+ if (PbFieldType.isMapField(fieldInfo.type)) {
if (value is Map) {
final mapFieldInfo = fieldInfo as MapFieldInfo<dynamic, dynamic>;
final Map fieldValues = fieldSet._ensureMapField(meta, fieldInfo);
@@ -421,7 +421,7 @@
} else {
throw context.parseException('Expected a map', value);
}
- } else if (_isRepeated(fieldInfo.type)) {
+ } else if (PbFieldType.isRepeated(fieldInfo.type)) {
if (value is List) {
final values = fieldSet._ensureRepeatedField(meta, fieldInfo);
for (var i = 0; i < value.length; i++) {
@@ -433,7 +433,7 @@
} else {
throw context.parseException('Expected a list', value);
}
- } else if (_isGroupOrMessage(fieldInfo.type)) {
+ } else if (PbFieldType.isGroupOrMessage(fieldInfo.type)) {
// TODO(sigurdm) consider a cleaner separation between parsing and
// merging.
final parsedSubMessage =
diff --git a/protobuf/lib/src/protobuf/unknown_field_set.dart b/protobuf/lib/src/protobuf/unknown_field_set.dart
index 62cee24..196c6b4 100644
--- a/protobuf/lib/src/protobuf/unknown_field_set.dart
+++ b/protobuf/lib/src/protobuf/unknown_field_set.dart
@@ -283,11 +283,11 @@
output.writeField(fieldNumber, type, value);
}
- write(PbFieldType._REPEATED_UINT64, varints);
- write(PbFieldType._REPEATED_FIXED32, fixed32s);
- write(PbFieldType._REPEATED_FIXED64, fixed64s);
- write(PbFieldType._REPEATED_BYTES, lengthDelimited);
- write(PbFieldType._REPEATED_GROUP, groups);
+ write(PbFieldType.REPEATED_UINT64, varints);
+ write(PbFieldType.REPEATED_FIXED32, fixed32s);
+ write(PbFieldType.REPEATED_FIXED64, fixed64s);
+ write(PbFieldType.REPEATED_BYTES, lengthDelimited);
+ write(PbFieldType.REPEATED_GROUP, groups);
}
void addGroup(UnknownFieldSet value) {
diff --git a/protobuf/lib/src/protobuf/wire_format.dart b/protobuf/lib/src/protobuf/wire_format.dart
index 1dabb63..375ee4b 100644
--- a/protobuf/lib/src/protobuf/wire_format.dart
+++ b/protobuf/lib/src/protobuf/wire_format.dart
@@ -38,32 +38,32 @@
/// Returns true if the wireType can be merged into the given fieldType.
bool _wireTypeMatches(int fieldType, int wireType) {
- switch (PbFieldType._baseType(fieldType)) {
- case PbFieldType._BOOL_BIT:
- case PbFieldType._ENUM_BIT:
- case PbFieldType._INT32_BIT:
- case PbFieldType._INT64_BIT:
- case PbFieldType._SINT32_BIT:
- case PbFieldType._SINT64_BIT:
- case PbFieldType._UINT32_BIT:
- case PbFieldType._UINT64_BIT:
+ switch (PbFieldType.baseType(fieldType)) {
+ case PbFieldType.BOOL_BIT:
+ case PbFieldType.ENUM_BIT:
+ case PbFieldType.INT32_BIT:
+ case PbFieldType.INT64_BIT:
+ case PbFieldType.SINT32_BIT:
+ case PbFieldType.SINT64_BIT:
+ case PbFieldType.UINT32_BIT:
+ case PbFieldType.UINT64_BIT:
return wireType == WIRETYPE_VARINT ||
wireType == WIRETYPE_LENGTH_DELIMITED;
- case PbFieldType._FLOAT_BIT:
- case PbFieldType._FIXED32_BIT:
- case PbFieldType._SFIXED32_BIT:
+ case PbFieldType.FLOAT_BIT:
+ case PbFieldType.FIXED32_BIT:
+ case PbFieldType.SFIXED32_BIT:
return wireType == WIRETYPE_FIXED32 ||
wireType == WIRETYPE_LENGTH_DELIMITED;
- case PbFieldType._DOUBLE_BIT:
- case PbFieldType._FIXED64_BIT:
- case PbFieldType._SFIXED64_BIT:
+ case PbFieldType.DOUBLE_BIT:
+ case PbFieldType.FIXED64_BIT:
+ case PbFieldType.SFIXED64_BIT:
return wireType == WIRETYPE_FIXED64 ||
wireType == WIRETYPE_LENGTH_DELIMITED;
- case PbFieldType._BYTES_BIT:
- case PbFieldType._STRING_BIT:
- case PbFieldType._MESSAGE_BIT:
+ case PbFieldType.BYTES_BIT:
+ case PbFieldType.STRING_BIT:
+ case PbFieldType.MESSAGE_BIT:
return wireType == WIRETYPE_LENGTH_DELIMITED;
- case PbFieldType._GROUP_BIT:
+ case PbFieldType.GROUP_BIT:
return wireType == WIRETYPE_START_GROUP;
default:
return false;