OpenContacts/lib/models/records/asset_diff.dart

34 lines
728 B
Dart
Raw Normal View History

2023-05-16 09:59:31 -04:00
class AssetDiff {
final String hash;
final int bytes;
final Diff state;
final bool isUploaded;
const AssetDiff({required this.hash, required this.bytes, required this.state, required this.isUploaded});
factory AssetDiff.fromMap(Map map) {
return AssetDiff(
hash: map["hash"],
bytes: map["bytes"],
state: Diff.fromInt(map["state"]),
isUploaded: map["isUploaded"],
);
}
}
enum Diff {
added,
unchanged,
removed;
factory Diff.fromInt(int? idx) {
return Diff.values[idx ?? 1];
}
factory Diff.fromString(String? text) {
return Diff.values.firstWhere((element) => element.name.toLowerCase() == text?.toLowerCase(),
orElse: () => Diff.unchanged,
);
}
}