abstract class Failure { final String message; final StackTrace? stackTrace; const Failure(this.message, [this.stackTrace]); @override String toString() => message; } class NetworkFailure extends Failure { const NetworkFailure(super.message, [super.stackTrace]); } class StorageFailure extends Failure { const StorageFailure(super.message, [super.stackTrace]); } class AuthFailure extends Failure { const AuthFailure(super.message, [super.stackTrace]); } class ParseFailure extends Failure { const ParseFailure(super.message, [super.stackTrace]); }