deserialize method
Restores a CountedCloner from a string produced by serialize.
Throws DeserializationFormatException if the input format is invalid.
Implementation
@override
CountedCloner deserialize(covariant String data) {
if (data.length < 5) {
throw DeserializationFormatException(
'data length < 5',
invalidValue: data,
);
}
if (!data.contains(_sDelimiter)) {
throw DeserializationFormatException('no delimiter', invalidValue: data);
}
final parts = data.split(_sDelimiter);
if (parts.length != 3) {
throw DeserializationFormatException(
'malformed parts',
invalidValue: data,
);
}
final doTypedClone = deserializeBaseFlag(parts.first, prefix: _sName);
final sizeLimit = int.tryParse(parts[1]);
if (sizeLimit == null) {
throw DeserializationFormatException(
'Invalid int for sizeLimit',
invalidValue: parts[1],
);
}
final nestLimit = int.tryParse(parts[2]);
if (nestLimit == null) {
throw DeserializationFormatException(
'Invalid int for nestLimit',
invalidValue: parts[2],
);
}
return CountedCloner._(sizeLimit, nestLimit, doTypedClone);
}