Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge package:convert #134

Merged
merged 107 commits into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
ed782b7
Add template files.
nex3 Sep 22, 2015
d9d51d0
Update the README and pubspec for this package.
nex3 Sep 22, 2015
0f4f74c
Add a hexadecimal codec.
nex3 Sep 24, 2015
2ea7048
Add a percent-encoding converter.
nex3 Oct 8, 2015
59b0157
Use the new Uint8Buffer.addAll start and end params.
nex3 Nov 3, 2015
75f50b5
Add sinks to provide synchronous access to events.
nex3 Apr 22, 2016
3948ffd
Make the package strong-mode clean.
nex3 Apr 27, 2016
7e211ae
Stop implementing ChunkedConverter.
nex3 Jun 3, 2016
376ee4e
Stop percent-encoding of numbers.
DanTup Jul 24, 2016
2f91ade
Bump the version.
nex3 Aug 8, 2016
5c2d74e
Don't percent-encode digits.
nex3 Aug 8, 2016
255f9c4
Add travis support and dartfmt... (dart-lang/convert#6)
matanlurey May 17, 2017
e262932
Use recommended analysis_options name, support Dart v2-dev, test on F…
kevmoo Aug 2, 2017
5c6796b
Remove -dev.infinity in SDK upper constraint
kevmoo Sep 19, 2017
2de436b
Stop testing Dartium (dart-lang/convert#12)
nex3 Feb 14, 2018
5a00216
Fix a Dart 2 runtime test failure (dart-lang/convert#14)
nex3 May 2, 2018
16ef053
chore: set max SDK version to <3.0.0 (dart-lang/convert#15)
chalin Jul 18, 2018
fd09f82
Test on Chrome on Travis (dart-lang/convert#16)
kevmoo Nov 2, 2018
1da0fa0
Added IdentityCodec (dart-lang/convert#17)
jonasfj Dec 12, 2018
db8d765
Make _IdentityConverter compatible with Dart SDK 1.x (dart-lang/conve…
aaronlademann-wf Dec 19, 2018
07f50d4
Enable and fix standard lints, test on oldest supported SDK (dart-lan…
kevmoo Apr 26, 2019
4b71f31
Ignore substantial failing lints from latest pedantic
kevmoo Dec 18, 2019
6fc78e5
remove author from pubspec
kevmoo Mar 13, 2020
685bb32
Delete .test_config
kevmoo Jul 29, 2020
b026bb4
Migrate to null safety (dart-lang/convert#32)
natebosch Aug 5, 2020
8b9b571
Update version and add changelog for null safety (dart-lang/convert#33)
natebosch Aug 5, 2020
2db2e80
Add Code Page support. (dart-lang/convert#26)
lrhn Sep 22, 2020
beba2c4
Allow the 2.10 stable and 2.11.0-dev SDKs (dart-lang/convert#36)
natebosch Sep 30, 2020
ea3a25f
Update SDK constraint to 2.12.0-0 (dart-lang/convert#38)
kevmoo Nov 5, 2020
1e972ca
Make the package not depend directly on package:charcode. (dart-lang/…
lrhn Nov 6, 2020
bf19f3b
prepare to publish convert (dart-lang/convert#39)
kevmoo Nov 6, 2020
ed5871a
remove redundant experiment
pq Nov 11, 2020
d40fb7c
Merge pull request dart-lang/convert#40 from dart-lang/pq-patch-1
pq Nov 11, 2020
d15468d
Increase package description to >=60 characters and added an example …
kevmoo Nov 16, 2020
5396217
Migrate to GitHub Actions (dart-lang/convert#43)
athomas Dec 21, 2020
420f195
stable null safety release (dart-lang/convert#45)
jakemac53 Feb 5, 2021
d5362b2
Update LICENSE
franklinyow Apr 1, 2021
ed1263e
Merge pull request dart-lang/convert#49 from dart-lang/franklinyow-pa…
franklinyow Apr 1, 2021
a6541c7
Latest CI setup, test oldest supported SDK (dart-lang/convert#50)
kevmoo Apr 23, 2021
8a8a5bd
Remove dependency on package:charcode entirely. (dart-lang/convert#53)
lrhn Jun 9, 2021
9687a3e
Prepare release without dependency on package:charcode (dart-lang/con…
lrhn Jun 24, 2021
1dc4a8c
Move from pedantic to lints package (dart-lang/convert#55)
natebosch Jul 22, 2021
2963df6
Add missing increment to custom code-page decoder. (dart-lang/convert…
lrhn May 30, 2022
0a0700e
add markdown badges to the readme
devoncarew Jun 6, 2022
0fee851
Merge pull request dart-lang/convert#65 from dart-lang/update_readme
devoncarew Jun 6, 2022
01582d3
add license
mosuem Sep 27, 2022
c1b6966
Add fixed datetime parser/formatter
mosuem Sep 27, 2022
135bfa5
rename
mosuem Sep 27, 2022
ce84dc8
add licenses
mosuem Sep 27, 2022
bb2aff9
add more changes as per review
mosuem Sep 27, 2022
e6b38a9
small name change
mosuem Sep 27, 2022
afed53a
rename files
mosuem Sep 27, 2022
b7059d6
apply changes as per review, convert to SOA
mosuem Sep 28, 2022
1e1e569
fix some stuff
mosuem Sep 28, 2022
0bab0cf
even faster
mosuem Sep 28, 2022
c585ffe
renaming
mosuem Sep 28, 2022
9a16288
Remove unused variable
mosuem Sep 28, 2022
1cca6f4
changes as per review
mosuem Sep 28, 2022
79156fc
changes as per review
mosuem Oct 5, 2022
85efafc
Duration to DateTime
mosuem Oct 5, 2022
477c062
Add test to check for microseconds
mosuem Oct 5, 2022
153a0e5
skip microsecond tests on web
mosuem Oct 5, 2022
b1cfee0
add documentation
mosuem Oct 5, 2022
4549c32
Apply simple changes as per review
mosuem Oct 5, 2022
a9d222e
Add larger changes as per review
mosuem Oct 5, 2022
2b01eef
Fix typo
mosuem Oct 5, 2022
0927dc2
Changes as per review
mosuem Oct 5, 2022
a17a3a5
Add changelog entry
mosuem Oct 5, 2022
67c1c16
Fix test
mosuem Oct 5, 2022
a70b420
Merge pull request dart-lang/convert#66 from dart-lang/introduce_date…
mosuem Oct 5, 2022
20a0091
update the CI configuration (dart-lang/convert#67)
devoncarew Oct 6, 2022
7c109a0
Bump version for publication (dart-lang/convert#68)
mosuem Oct 12, 2022
c076693
Fix comment references, update lints, require latest Dart SDK (dart-l…
kevmoo Oct 12, 2022
b0c3146
Bump actions/checkout from 3.1.0 to 3.2.0 (dart-lang/convert#73)
dependabot[bot] Jan 3, 2023
597c82b
Bump dart-lang/setup-dart from 1.3 to 1.4 (dart-lang/convert#74)
dependabot[bot] Feb 1, 2023
43b787f
Bump actions/checkout from 3.2.0 to 3.3.0 (dart-lang/convert#75)
dependabot[bot] Feb 1, 2023
ab9c130
Bump actions/checkout from 3.3.0 to 3.5.0 (dart-lang/convert#80)
dependabot[bot] Apr 3, 2023
51007ee
Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (dart-lang/convert#79)
dependabot[bot] Apr 3, 2023
90abcef
Require Dart 2.19, fix override param name, update lints (dart-lang/c…
kevmoo Apr 10, 2023
d0bc125
Bump actions/checkout from 3.5.0 to 3.5.2 (dart-lang/convert#82)
dependabot[bot] May 8, 2023
3a7d656
blast_repo fixes (dart-lang/convert#83)
devoncarew May 16, 2023
e1b8879
Bump actions/checkout from 3.5.2 to 3.5.3 (dart-lang/convert#84)
dependabot[bot] Jul 1, 2023
14db202
Bump actions/checkout from 3.5.3 to 3.6.0 (dart-lang/convert#86)
dependabot[bot] Sep 1, 2023
2032999
Bump actions/checkout from 3.6.0 to 4.1.0 (dart-lang/convert#87)
dependabot[bot] Oct 1, 2023
2d32c7e
Bump dart-lang/setup-dart from 1.5.0 to 1.5.1 (dart-lang/convert#88)
dependabot[bot] Oct 3, 2023
c9678d9
Bump actions/checkout from 4.1.0 to 4.1.1 (dart-lang/convert#90)
dependabot[bot] Nov 1, 2023
0e3ac1e
Bump dart-lang/setup-dart from 1.5.1 to 1.6.0 (dart-lang/convert#89)
dependabot[bot] Nov 1, 2023
37c9ad9
Add chunked decoding support to CodePage (dart-lang/convert#91)
brianquinlan Nov 6, 2023
41149d2
blast_repo fixes (dart-lang/convert#96)
kevmoo Dec 19, 2023
ba40400
Enable and fix new lints (dart-lang/convert#97)
kevmoo Dec 19, 2023
014be9e
Bump actions/stale from 8.0.0 to 9.0.0 (dart-lang/convert#98)
dependabot[bot] Jan 1, 2024
652605e
Bump dart-lang/setup-dart from 1.6.0 to 1.6.2 (dart-lang/convert#100)
dependabot[bot] Feb 1, 2024
0b54670
Test dart2wasm (dart-lang/convert#101)
kevmoo Feb 1, 2024
e702bb6
Bump actions/checkout from 4.1.1 to 4.1.2 (dart-lang/convert#102)
dependabot[bot] Apr 1, 2024
4b526c4
Bump dart-lang/setup-dart from 1.6.2 to 1.6.4 (dart-lang/convert#104)
dependabot[bot] May 1, 2024
3066dc8
Bump actions/checkout from 4.1.2 to 4.1.4 (dart-lang/convert#103)
dependabot[bot] May 1, 2024
488c42d
blast_repo fixes (dart-lang/convert#105)
devoncarew May 3, 2024
449efc9
Bump actions/checkout from 4.1.4 to 4.1.6 in the github-actions group…
dependabot[bot] Jun 2, 2024
4dbbc6c
⚡ Upper-cast the return type of the decoder (dart-lang/convert#99)
AlexV525 Jun 9, 2024
1bd5f63
latest lints, require Dart 3.4 (dart-lang/convert#107)
kevmoo Jun 10, 2024
8d94c64
Bump the github-actions group with 2 updates (dart-lang/convert#108)
dependabot[bot] Jul 1, 2024
30ce9ee
Bump actions/checkout from 4.1.7 to 4.2.0 in the github-actions group…
dependabot[bot] Oct 4, 2024
9133afe
Merge package:convert into the core monorepo
mosuem Oct 15, 2024
df1ee69
Moving fixes
mosuem Oct 15, 2024
b0e5899
Add license to file
mosuem Oct 15, 2024
3303cce
Changes as per review
mosuem Oct 16, 2024
cbf9a16
Merge branch 'main' into merge-convert-package
mosuem Oct 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
- changed-files:
- any-glob-to-any-file: 'pkgs/args/**'

"package:convert":
- changed-files:
- any-glob-to-any-file: 'pkgs/convert/**'

"package:crypto":
- changed-files:
- any-glob-to-any-file: 'pkgs/crypto/**'
Expand Down
76 changes: 76 additions & 0 deletions .github/workflows/convert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: package:convert

on:
# Run CI on pushes to the main branch, and on PRs against main.
push:
branches: [ main ]
paths:
- '.github/workflows/convert.yaml'
- 'pkgs/convert/**'
pull_request:
branches: [ main ]
paths:
- '.github/workflows/convert.yaml'
- 'pkgs/convert/**'
schedule:
- cron: "0 0 * * 0"
env:
PUB_ENVIRONMENT: bot.github

defaults:
run:
working-directory: pkgs/convert/

jobs:
# Check code formatting and static analysis on a single OS (linux)
# against Dart dev.
analyze:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sdk: [dev]
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
with:
sdk: ${{ matrix.sdk }}
- id: install
name: Install dependencies
run: dart pub get
- name: Check formatting
run: dart format --output=none --set-exit-if-changed .
if: always() && steps.install.outcome == 'success'
- name: Analyze code
run: dart analyze --fatal-infos
if: always() && steps.install.outcome == 'success'

# Run tests on a matrix consisting of two dimensions:
# 1. OS: ubuntu-latest, (macos-latest, windows-latest)
# 2. release sdk: dev
test:
needs: analyze
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Add macos-latest and/or windows-latest if relevant for this package.
os: [ubuntu-latest]
sdk: [3.4, dev]
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
with:
sdk: ${{ matrix.sdk }}
- id: install
name: Install dependencies
run: dart pub get
- name: Run VM tests
run: dart test --platform vm
if: always() && steps.install.outcome == 'success'
- name: Run Chrome tests
run: dart test --platform chrome
if: always() && steps.install.outcome == 'success'
- name: Run Chrome tests - wasm
run: dart test --platform chrome --compiler dart2wasm
if: always() && steps.install.outcome == 'success'
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ This repository is home to various Dart packages under the [dart.dev](https://pu
| Package | Description | Version |
|---|---|---|
| [args](pkgs/args/) | Library for defining parsers for parsing raw command-line arguments into a set of options and values. | [![pub package](https://img.shields.io/pub/v/args.svg)](https://pub.dev/packages/args) |
| [convert](pkgs/convert/) | Utilities for converting between data representations. | [![pub package](https://img.shields.io/pub/v/convert.svg)](https://pub.dev/packages/convert) |
| [crypto](pkgs/crypto/) | Implementations of SHA, MD5, and HMAC cryptographic functions. | [![pub package](https://img.shields.io/pub/v/crypto.svg)](https://pub.dev/packages/crypto) |
| [fixnum](pkgs/fixnum/) | Library for 32- and 64-bit signed fixed-width integers. | [![pub package](https://img.shields.io/pub/v/fixnum.svg)](https://pub.dev/packages/fixnum) |

Expand Down
3 changes: 3 additions & 0 deletions pkgs/convert/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.dart_tool
.packages
pubspec.lock
6 changes: 6 additions & 0 deletions pkgs/convert/AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Below is a list of people and organizations that have contributed
# to the project. Names should be added to the list like so:
#
# Name/Organization <email address>

Google Inc.
75 changes: 75 additions & 0 deletions pkgs/convert/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
## 3.1.2

- Require Dart 3.4
- Add chunked decoding support (`startChunkedConversion`) for `CodePage`
encodings.
- Upper-cast the return type of the decoder from `List<int>` to `Uint8List`.
- Move to `dart-lang/core` monorepo.

## 3.1.1

- Require Dart 2.18
- Fix a number of comment references.

## 3.1.0

- Add a fixed-pattern DateTime formatter. See
[#210](https://github.com/dart-lang/intl/issues/210) in package:intl.

## 3.0.2

- Fix bug in `CodePage` class. See issue
[#47](https://github.com/dart-lang/convert/issues/47).

## 3.0.1

- Dependency clean-up.

## 3.0.0

- Stable null safety release.
- Added `CodePage` class for single-byte `Encoding` implementations.

## 2.1.1

- Fixed a DDC compilation regression for consumers using the Dart 1.x SDK that
was introduced in `2.1.0`.

## 2.1.0

- Added an `IdentityCodec<T>` which implements `Codec<T,T>` for use as default
value for in functions accepting an optional `Codec` as parameter.

## 2.0.2

- Set max SDK version to `<3.0.0`, and adjust other dependencies.

## 2.0.1

- `PercentEncoder` no longer encodes digits. This follows the specified
behavior.

## 2.0.0

**Note**: No new APIs have been added in 2.0.0. Packages that would use 2.0.0 as
a lower bound should use 1.0.0 instead—for example, `convert: ">=1.0.0 <3.0.0"`.

- `HexDecoder`, `HexEncoder`, `PercentDecoder`, and `PercentEncoder` no longer
extend `ChunkedConverter`.

## 1.1.1

- Fix all strong-mode warnings.

## 1.1.0

- Add `AccumulatorSink`, `ByteAccumulatorSink`, and `StringAccumulatorSink`
classes for providing synchronous access to the output of chunked converters.

## 1.0.1

- Small improvement in percent decoder efficiency.

## 1.0.0

- Initial version
27 changes: 27 additions & 0 deletions pkgs/convert/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Copyright 2015, the Dart project authors.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Google LLC nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9 changes: 9 additions & 0 deletions pkgs/convert/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[![Dart CI](https://github.com/dart-lang/core/actions/workflows/convert.yaml/badge.svg)](https://github.com/dart-lang/core/actions/workflows/convert.yaml)
[![pub package](https://img.shields.io/pub/v/convert.svg)](https://pub.dev/packages/convert)
[![package publisher](https://img.shields.io/pub/publisher/convert.svg)](https://pub.dev/packages/convert/publisher)

Contains encoders and decoders for converting between different
data representations. It's the external counterpart of the
[`dart:convert`](https://api.dart.dev/dart-convert/dart-convert-library.html)
SDK library, and contains less-central APIs and APIs that need more flexible
versioning.
24 changes: 24 additions & 0 deletions pkgs/convert/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# https://dart.dev/guides/language/analysis-options
include: package:dart_flutter_team_lints/analysis_options.yaml

analyzer:
language:
strict-casts: true
strict-raw-types: true

linter:
rules:
- avoid_private_typedef_functions
- avoid_redundant_argument_values
- avoid_unused_constructor_parameters
- avoid_void_async
- cancel_subscriptions
- literal_only_boolean_expressions
- missing_whitespace_between_adjacent_strings
- no_adjacent_strings_in_list
- no_runtimeType_toString
- package_api_docs
- prefer_const_declarations
- prefer_expression_function_bodies
- unnecessary_await_in_return
- use_string_buffers
23 changes: 23 additions & 0 deletions pkgs/convert/benchmark/fixed_datetime_formatter_benchmark.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:benchmark_harness/benchmark_harness.dart';
import 'package:convert/convert.dart';

/// Test the performance of [FixedDateTimeFormatter.decode].
class DecodeBenchmark extends BenchmarkBase {
final fixedDateTimeFormatter = FixedDateTimeFormatter('YYYYMMDDhhmmss');
DecodeBenchmark() : super('Parse 10k strings to DateTime');

@override
void run() {
for (var i = 0; i < 10000; i++) {
fixedDateTimeFormatter.decode('19960425050322');
}
}
}

void main() {
DecodeBenchmark().report();
}
20 changes: 20 additions & 0 deletions pkgs/convert/example/example.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'dart:convert';

import 'package:convert/convert.dart';

void main(List<String> args) {
// Creates a Codec that converts a UTF-8 strings to/from percent encoding
final fusedCodec = utf8.fuse(percent);

final input = args.isNotEmpty ? args.first : 'ABC 123 @!(';
print(input);
final encodedMessage = fusedCodec.encode(input);
print(encodedMessage);

final decodedMessage = fusedCodec.decode(encodedMessage);
assert(decodedMessage == input);
}
12 changes: 12 additions & 0 deletions pkgs/convert/lib/convert.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

export 'src/accumulator_sink.dart';
export 'src/byte_accumulator_sink.dart';
export 'src/codepage.dart';
export 'src/fixed_datetime_formatter.dart';
export 'src/hex.dart';
export 'src/identity_codec.dart';
export 'src/percent.dart';
export 'src/string_accumulator_sink.dart';
40 changes: 40 additions & 0 deletions pkgs/convert/lib/src/accumulator_sink.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'dart:collection';
import 'dart:convert';

/// A sink that provides access to all the [events] that have been passed to it.
///
/// See also [ChunkedConversionSink.withCallback].
class AccumulatorSink<T> implements Sink<T> {
/// An unmodifiable list of events passed to this sink so far.
List<T> get events => UnmodifiableListView(_events);
final _events = <T>[];

/// Whether [close] has been called.
bool get isClosed => _isClosed;
var _isClosed = false;

/// Removes all events from [events].
///
/// This can be used to avoid double-processing events.
void clear() {
_events.clear();
}

@override
void add(T event) {
if (_isClosed) {
throw StateError("Can't add to a closed sink.");
}

_events.add(event);
}

@override
void close() {
_isClosed = true;
}
}
Loading
Loading