Number.fromMap constructor

Number.fromMap(
  1. Map<String, dynamic>? m
)

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;
}