goDurationString function

String goDurationString(
  1. Duration d
)

d as the Go duration string Terraform reads: hours, minutes, seconds, milliseconds and microseconds, each unit only when it is not zero (Duration(minutes: 90) is 1h30m, zero is 0s).

Implementation

String goDurationString(Duration d) {
  if (d.isNegative) return '-${goDurationString(-d)}';
  final parts = [
    (d.inHours, 'h'),
    (d.inMinutes % 60, 'm'),
    (d.inSeconds % 60, 's'),
    (d.inMilliseconds % 1000, 'ms'),
    (d.inMicroseconds % 1000, 'us'),
  ];
  final text = [
    for (final (n, unit) in parts)
      if (n != 0) '$n$unit',
  ].join();
  return text.isEmpty ? '0s' : text;
}