parseSizeToBytes function

int? parseSizeToBytes(
  1. String input
)

Implementation

int? parseSizeToBytes(String input) {
  final RegExpMatch? m = _sizeRegex.firstMatch(input.trim());
  if (m == null) return null;
  final String? g1 = m.group(1);
  if (g1 == null) return null;
  final double? value = double.tryParse(g1);
  if (value == null || value < 0) return null;
  final String unit = (m.group(2) ?? '').toUpperCase().replaceAll(_kUnitB, '');
  const Map<String, int> factors = <String, int>{
    '': 1,
    'K': 1024,
    'M': 1048576,
    'G': 1073741824,
    'T': 1099511627776,
    'P': 1125899906842624,
    'E': 1152921504606846976,
  };
  final int? factor = factors[unit];
  if (factor == null) return null;
  return (value * factor).round();
}