Number.fromMap constructor
Detect the type of Number by inspecting map contents and create it. Recognized formats are: {'i': int value} {'d': double value} {'pd': arbitrary precision string} {'real': {i or d map}, 'imag': {i or d map}} {'imag': {i or d map}}
If the map contents are not recognized Integer.zero will be returned.
Implementation
factory Number.fromMap(Map<String, dynamic>? m) {
if (m == null) return Integer.zero;
if (m.containsKey('d') && m['d'] is num) {
return Double.fromMap(m as Map<String, num>);
}
if (m.containsKey('i') && m['i'] is int) {
return Integer.fromMap(m as Map<String, int>);
}
if (m.containsKey('precise') && m['precise'] is Map<String, String>) {
return Precise.fromMap(m as Map<String, String>);
}
if (m.containsKey('real') && m is Map<String, Map<String, dynamic>>) {
return Complex.fromMap(m);
}
if (m.containsKey('imag') && m is Map<String, Map<String, dynamic>>) {
return Imaginary.fromMap(m);
}
return Integer.zero;
}