#157 new: icloud sync

This commit is contained in:
lollipopkit
2023-09-11 19:20:29 +08:00
parent ddaee7c2f3
commit e4fd75ac5a
22 changed files with 448 additions and 125 deletions

View File

@@ -52,3 +52,19 @@ class DockerErr extends Err<DockerErrType> {
return 'DockerErr<$type>: $message';
}
}
enum ICloudErrType {
generic,
notFound,
multipleFiles,
}
class ICloudErr extends Err<ICloudErrType> {
ICloudErr({required ICloudErrType type, String? message})
: super(from: ErrFrom.docker, type: type, message: message);
@override
String toString() {
return 'ICloudErr<$type>: $message';
}
}

View File

@@ -0,0 +1,7 @@
abstract class JsonSerializable<T> {
/// Convert [this] to json
Map<String, dynamic> toJson();
/// Create [this] from json
T fromJson(Map<String, dynamic> json);
}

View File

@@ -0,0 +1,9 @@
abstract class SyncAble<T> {
/// If [other] is newer than [this] then return true,
/// else return false
bool needSync(T other);
/// Merge [other] into [this],
/// return [this] after merge
T merge(T other);
}