fromTimeoutString function

Duration? fromTimeoutString(
  1. String? timeout
)

Convert timeout from grpc-timeout header string format to Duration. Returns null if timeout is not correctly formatted.

Implementation

Duration? fromTimeoutString(String? timeout) {
  if (timeout == null) return null;
  if (timeout.length < 2) return null;
  final value = int.tryParse(timeout.substring(0, timeout.length - 1));
  if (value == null) return null;
  switch (timeout[timeout.length - 1]) {
    case 'n':
      return Duration(microseconds: value * 1000);
    case 'u':
      return Duration(microseconds: value);
    case 'm':
      return Duration(milliseconds: value);
    case 'S':
      return Duration(seconds: value);
    case 'M':
      return Duration(minutes: value);
    case 'H':
      return Duration(hours: value);
    default:
      return null;
  }
}