parserFor<T> static method
Returns the parser for the desired type, defined by T
, obj
or type
.
Implementation
static TypeElementParser? parserFor<T>({Object? obj, Type? type}) {
if (obj != null) {
if (obj is String) {
return parseString;
} else if (obj is Map) {
return parseMap;
} else if (obj is Set) {
return parseSet;
} else if (obj is List || obj is Iterable) {
return parseList;
} else if (obj is int) {
return parseInt;
} else if (obj is double) {
return parseDouble;
} else if (obj is num) {
return parseNum;
} else if (obj is bool) {
return parseBool;
} else if (obj is BigInt) {
return parseBigInt;
} else if (obj is DateTime) {
return parseDateTime;
}
}
type ??= obj?.runtimeType ?? T;
if (type == String) {
return parseString;
} else if (type == Map) {
return parseMap;
} else if (type == Set) {
return parseSet;
} else if (type == List) {
return parseList;
} else if (type == int) {
return parseInt;
} else if (type == double) {
return parseDouble;
} else if (type == num) {
return parseNum;
} else if (type == bool) {
return parseBool;
} else if (type == BigInt) {
return parseBigInt;
} else if (type == DateTime) {
return parseDateTime;
}
for (var r in _parsersResolvers) {
var parser = r(t: T, type: type, obj: obj);
if (parser != null) return parser;
}
return null;
}