humanToBytes static method

int? humanToBytes(
  1. String sizeString
)

Converts a human-readable size string to bytes

Supports units: B, KB, MB, GB, TB, PB (case insensitive)

sizeString The size string to parse (e.g., "1.5 MB")

Returns the size in bytes or null if parsing fails

Example:

final result = QTypeConversion.humanToBytes('1.5 MB'); // 1572864

Implementation

static int? humanToBytes(String sizeString) {
  if (sizeString.isEmpty) return null;

  final units = {
    'b': 1,
    'kb': 1024,
    'mb': 1024 * 1024,
    'gb': 1024 * 1024 * 1024,
    'tb': 1024 * 1024 * 1024 * 1024,
    'pb': 1024 * 1024 * 1024 * 1024 * 1024,
  };

  try {
    final trimmed = sizeString.trim().toLowerCase();
    final parts = trimmed.split(RegExp(r'\s+'));

    if (parts.length == 1) {
      // Just a number, assume bytes
      return int.parse(parts[0]);
    } else if (parts.length == 2) {
      final value = double.parse(parts[0]);
      final unit = parts[1].toLowerCase();
      final multiplier = units[unit];

      if (multiplier != null) {
        return (value * multiplier).round();
      }
    }
  } catch (_) {}

  return null;
}