// Copyright (C) 2022 WYATT GROUP // Please see the AUTHORS file for details. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . import 'dart:async'; import 'package:wyatt_architecture/wyatt_architecture.dart'; /// Usecase observers mixin Observer { /// Called before usecase is runned. /// Useful to check the preconditions FutureOr onStart(Parameters? params) {} /// Called when error occures during main scenario /// Useful to run alternative scenario FutureOr onError(AppException? error) {} } /// Specific observer for classic usecase mixin AsyncObserver { /// Called when usecase is completed FutureOr onComplete(ReturnType? data) {} } /// Specific observer for stream case usecase mixin StreamObserver { /// Replaces the data event handler of this subscription. void onDone() {} /// Replaces the done event handler of this subscription. void onData(ReturnType? data) {} }