CancelToken constructor

CancelToken()

Implementation

CancelToken() {
  _refController.stream.listen((ref) {
    switch (_state) {
      case CancelState.idle:
        _refs.add(ref);
        break;
      case CancelState.waitingForRef:
        // "complete" adds a microtask,
        // so we need to set the state first to avoid completing twice.
        _state = CancelState.cancelling;
        _firstRef.complete(ref);
        break;
      case CancelState.cancelling:
      case CancelState.done:
        rust.cancelRequest(token: ref);
        break;
    }
  });
}