distinct_value_connectable_stream 1.2.0-nullsafety.5 distinct_value_connectable_stream: ^1.2.0-nullsafety.5 copied to clipboard
Distinct value connectable stream for RxDart, useful for BLoC pattern
distinct_value_connectable_stream #
Distinct
&Connectable
&ValueStream
RxDart Stream.- Useful for flutter
BLoC pattern
-StreamBuilder
.
Author: Petrus Nguyễn Thái Học #
Distinct
: distinct until changed.Value
: can synchronous access to the last emitted item.NotReplay
: not replay the latest value.Connectable
: broadcast stream - can be listened to multiple time.
Stream (dart:core)
^
|
|
|--------------------------------------------|
| |
| |
ValueStream (rxdart) |
^ |
| |
| |
NotReplayValueStream (rxdart_ext) |
^ ConnectableStream (rxdart)
| ^
| |
DistinctValueStream (this package) |
^ |
| |
|------------ -----------|
| |
| |
DistinctValueConnectableStream (this package)
-
Broadcast
DistinctValueConnectableStream
.publishValueDistinct
.shareValueDistinct
.
-
Single-subscription:
distinctValue
.
Usage #
import 'package:distinct_value_connectable_stream/distinct_value_connectable_stream.dart';
class UiState { ... }
final Stream<UiState> state$ = ...;
final distinctState$ = state$.publishValueDistinct(UiState.initial());
distinctState$.connect();
StreamBuilder<UiState>(
initialData: distinctState$.requireValue,
stream: distinctState$,
builder: (context, snapshot) {
final UiState state = snapshot.requireData;
return ...;
},
);
Features and bugs #
Please file feature requests and bugs at the issue tracker.
License #
MIT License
Copyright (c) 2020 Petrus Nguyễn Thái Học