parse<V> method
Parse value
or return def
.
See TypeParser.parserFor.
Implementation
V? parse<V>(Object? value, [V? def]) {
if (value == null) return def;
if (isString) {
return TypeParser.parseString(value, def as String?) as V?;
} else if (isInt) {
return TypeParser.parseInt(value, def as int?) as V?;
} else if (isBool) {
return TypeParser.parseBool(value, def as bool?) as V?;
} else if (isDouble) {
return TypeParser.parseDouble(value, def as double?) as V?;
} else if (isNum) {
return TypeParser.parseNum(value, def as num?) as V?;
} else if (isDateTime) {
return TypeParser.parseDateTime(value, def as DateTime?) as V?;
} else if (isUInt8List) {
return TypeParser.parseUInt8List(value, def as Uint8List?) as V?;
} else if (isBigInt) {
return TypeParser.parseBigInt(value, def as BigInt?) as V?;
} else if (isList) {
return TypeParser.parseList(value, elementParser: argumentParser(0))
as V?;
} else if (isSet) {
return TypeParser.parseSet(value, elementParser: argumentParser(0)) as V?;
} else if (isMap) {
return TypeParser.parseMap(value,
keyParser: argumentParser(0), valueParser: argumentParser(1)) as V?;
} else if (isMapEntry) {
return TypeParser.parseMapEntry(value,
keyParser: argumentParser(0), valueParser: argumentParser(1)) as V?;
} else {
if (value.runtimeType == type) {
return value as V;
}
return null;
}
}