1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
thesis_shop/lib/models/remote_resource.dart

38 lines
888 B

abstract class RemoteResource<T> {
RemoteResource._();
factory RemoteResource.loading() {
return LoadingRemoteResource();
}
factory RemoteResource.error(String errorMessage) {
return ErrorRemoteResource(errorMessage);
}
factory RemoteResource.finished(T value) {
return FinishedRemoteResource(value);
}
FinishedRemoteResource<T> asFinished() {
return this as FinishedRemoteResource<T>;
}
ErrorRemoteResource<T> asError() {
return this as ErrorRemoteResource<T>;
}
}
class ErrorRemoteResource<T> extends RemoteResource<T> {
final String errorMessage;
ErrorRemoteResource(this.errorMessage) : super._();
}
class LoadingRemoteResource<T> extends RemoteResource<T> {
LoadingRemoteResource() : super._();
}
class FinishedRemoteResource<T> extends RemoteResource<T> {
final T value;
FinishedRemoteResource(this.value) : super._();
}