toHumanShort method

String toHumanShort()

Formats the duration as a short human-readable string (e.g., "1h 3m 4s").

Implementation

String toHumanShort() {
  final isNegative = this.isNegative;
  final duration = abs();
  final parts = <String>[];

  final days = duration.inDays;
  final hours = duration.inHours.remainder(24);
  final minutes = duration.inMinutes.remainder(60);
  final seconds = duration.inSeconds.remainder(60);

  if (days > 0) parts.add('${days}d');
  if (hours > 0) parts.add('${hours}h');
  if (minutes > 0) parts.add('${minutes}m');
  if (seconds > 0 || parts.isEmpty) parts.add('${seconds}s');

  final value = parts.join(' ');
  return isNegative ? '-$value' : value;
}