TarHeaderModel.fromJson constructor
TarHeaderModel.fromJson(
- Object? json_
Returns a new instance from a JSON value. May throw if the value does not have the expected structure.
Implementation
factory TarHeaderModel.fromJson(Object? json_) {
final json = json_ is Map
? _spec.fields.map((f) => json_[f.label]).toList(growable: false)
: json_;
return switch (json) {
[
final mode,
final uid,
final gid,
final mtime,
final username,
final groupname,
final deviceMajor,
final deviceMinor
] ||
(
final mode,
final uid,
final gid,
final mtime,
final username,
final groupname,
final deviceMajor,
final deviceMinor
) =>
TarHeaderModel(
mode: Option.fromJson(mode, (some) => some! as int).value,
uid: Option.fromJson(uid, (some) => bigIntFromJson(some)).value,
gid: Option.fromJson(gid, (some) => bigIntFromJson(some)).value,
mtime: Option.fromJson(mtime, (some) => bigIntFromJson(some)).value,
username: Option.fromJson(
username,
(some) =>
some is String ? some : (some! as ParsedString).value).value,
groupname: Option.fromJson(
groupname,
(some) =>
some is String ? some : (some! as ParsedString).value).value,
deviceMajor:
Option.fromJson(deviceMajor, (some) => some! as int).value,
deviceMinor:
Option.fromJson(deviceMinor, (some) => some! as int).value,
),
_ => throw Exception('Invalid JSON $json_')
};
}