CircleCI pub package

Simple library to manage objects needing to release its own resources.

Disposable

final sink = StreamController();
final disposable = Disposable(() => sink.close());
disposable.dispose();

For more complex disposable object you can implement the Disposable interface yourself.

class SomeObject implements Disposable {
  @override
  bool isDisposed = false;
  @override
  void dispose() {
    isDisposed = true;
  }
}

DisposableCollection

final disposables = [SomeObject(), SomeObject(), disposable];
final collection = DisposableCollection(disposables);
collection.dispose();

If you want to compose disposables into without mutating after creation consider using compose.

final disposable = Disposable.compose(disposables);
disposable.dispose();

Libraries

disposables
A small library to handle classes needing to release it's resources.