Line data Source code
1 : import 'dart:convert';
2 : import 'dart:typed_data';
3 : import 'package:typed_data/src/typed_buffer.dart';
4 :
5 : class BufferBuilder extends ByteConversionSinkBase {
6 : final Uint8Buffer _buffer = Uint8Buffer();
7 : int _length = 0;
8 :
9 4 : int get length => _length;
10 :
11 4 : Uint8List asBytes() {
12 16 : return _buffer.buffer.asUint8List(0, _length);
13 : }
14 :
15 3 : @override
16 : void add(List<int> chunk) {
17 6 : _buffer.addAll(chunk);
18 9 : _length += chunk.length;
19 : }
20 :
21 0 : void addByte(int byte) {
22 0 : _buffer.add(byte);
23 0 : _length++;
24 : }
25 :
26 2 : void setRange(int start, int length, List<int> content) {
27 6 : _buffer.setRange(start, start + length, content);
28 : }
29 :
30 0 : @override
31 : void close() {
32 : // no-op, never used
33 : }
34 : }
|