disposables 1.0.0

SDKdartflutter
Platformandroidioswindowslinuxmacosweb

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

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();