Initial Flutter booru app
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
class AppLogger {
|
||||
const AppLogger();
|
||||
|
||||
void debug(String message, [Object? error, StackTrace? stackTrace]) {
|
||||
if (kDebugMode) {
|
||||
debugPrint('[GelRule] $message');
|
||||
if (error != null) debugPrint(' error: $error');
|
||||
if (stackTrace != null) debugPrint(' stack: $stackTrace');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import '../errors/failure.dart';
|
||||
|
||||
sealed class Result<T> {
|
||||
const Result();
|
||||
|
||||
bool get isSuccess => this is Success<T>;
|
||||
bool get isError => this is Error<T>;
|
||||
|
||||
R fold<R>({
|
||||
required R Function(T data) onSuccess,
|
||||
required R Function(Failure failure) onError,
|
||||
}) {
|
||||
final current = this;
|
||||
return switch (current) {
|
||||
Success<T>(:final data) => onSuccess(data),
|
||||
Error<T>(:final failure) => onError(failure),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class Success<T> extends Result<T> {
|
||||
const Success(this.data);
|
||||
final T data;
|
||||
}
|
||||
|
||||
class Error<T> extends Result<T> {
|
||||
const Error(this.failure);
|
||||
final Failure failure;
|
||||
}
|
||||
Reference in New Issue
Block a user