init method

void init()

Implementation

void init() {
  final normalStream = _subject.stream.where((event) => event.type.isNormal);

  final throttleLeadingStream = _subject.stream
      .where((event) => event.type.isThrottleLeading)
      .transform(
        ThrottleStreamTransformer(
          (_) => TimerStream<PlutoGridEvent>(_, _.duration as Duration),
          trailing: false,
          leading: true,
        ),
      );

  final throttleTrailingStream = _subject.stream
      .where((event) => event.type.isThrottleTrailing)
      .transform(
        ThrottleStreamTransformer(
          (_) => TimerStream<PlutoGridEvent>(_, _.duration as Duration),
          trailing: true,
          leading: false,
        ),
      );

  final debounceStream =
      _subject.stream.where((event) => event.type.isDebounce).transform(
            DebounceStreamTransformer(
              (_) => TimerStream<PlutoGridEvent>(_, _.duration as Duration),
            ),
          );

  _subscription = MergeStream([
    normalStream,
    throttleLeadingStream,
    throttleTrailingStream,
    debounceStream,
  ]).listen(_handler);
}