Open
Description
Ref: https://groups.google.com/a/dartlang.org/forum/#!topic/misc/JpNkRRLI9_w, daegalus/dart-uuid#35
More and more packages are explicitly switching to Uint8List
Right now, with the folling proto
message BluetoothCharacteristic {
bytes value = 6;
}
The generated dart code (by Activated protoc_plugin 16.0.1.
) is
import 'dart:core' show int, bool, double, String, List, Map, override;
import 'package:protobuf/protobuf.dart' as $pb;
class BluetoothCharacteristic extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = new $pb.BuilderInfo('BluetoothCharacteristic')
..a<List<int>>(6, 'value', $pb.PbFieldType.OY)
..hasRequiredFields = false
;
BluetoothCharacteristic() : super();
BluetoothCharacteristic.fromBuffer(List<int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromBuffer(i, r);
BluetoothCharacteristic.fromJson(String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) : super.fromJson(i, r);
BluetoothCharacteristic clone() => new BluetoothCharacteristic()..mergeFromMessage(this);
BluetoothCharacteristic copyWith(void Function(BluetoothCharacteristic) updates) => super.copyWith((message) => updates(message as BluetoothCharacteristic));
$pb.BuilderInfo get info_ => _i;
static BluetoothCharacteristic create() => new BluetoothCharacteristic();
BluetoothCharacteristic createEmptyInstance() => create();
static $pb.PbList<BluetoothCharacteristic> createRepeated() => new $pb.PbList<BluetoothCharacteristic>();
static BluetoothCharacteristic getDefault() => _defaultInstance ??= create()..freeze();
static BluetoothCharacteristic _defaultInstance;
List<int> get value => $_getN(0);
set value(List<int> v) { $_setBytes(0, v); }
bool hasValue() => $_has(0);
void clearValue() => clearField(6);
}
We can see that we still have
List<int> get value => $_getN(0);
set value(List<int> v) { $_setBytes(0, v); }
Expected generated code:
Uint8List get value => $_getN(0);
set value(Uint8List v) { $_setBytes(0, v); }
One concern might be that this is more or less a breaking change in strong mode.