code: func DecodeTimeout(s string) (time.Duration, error) {
  	size := len(s)
  	if size < 2 {
  		return 0, fmt.Errorf("too short: %q", s)
  	}
  	unit := timeoutUnit(s[size-1])
  	d, ok := timeoutUnitToDuration(unit)
  	if !ok {
  		return 0, fmt.Errorf("unit is not recognized: %q", s)
  	}
  	t, err := strconv.ParseInt(s[:size-1], 10, 64)
  	if err != nil {
  		return 0, err
  	}
  	return d * time.Duration(t), nil
  }
docs: // DecodeTimeout decodes a gRPC/pRPC timeout header string into a time.Duration.