Utility functions for logging time-related information.
Summary
Functions
Converts duration_split and units into a formatted string.
Splits milliseconds into [hours, minutes, seconds, milliseconds].
Functions
@spec format([non_neg_integer()], [atom() | String.t()]) :: String.t()
Converts duration_split and units into a formatted string.
Examples
iex> alias Buzzword.Cache.Log.TimeUtil
iex> TimeUtil.format([1, 1, 6, 1])
"1 h 1 min 6 s 1 ms"
iex> alias Buzzword.Cache.Log.TimeUtil
iex> TimeUtil.format([1, 1, 6, 1], [:hr, :min, :sec])
"1 hr 1 min 6 sec"
iex> alias Buzzword.Cache.Log.TimeUtil
iex> TimeUtil.format([1, 1, 6, 1], ["hour(s)", "minute(s)"])
"1 hour(s) 1 minute(s)"
iex> alias Buzzword.Cache.Log.TimeUtil
iex> TimeUtil.format([1, 1, 0, 1])
"1 h 1 min 1 ms"
iex> alias Buzzword.Cache.Log.TimeUtil
iex> TimeUtil.format([1, 0, 6, 1])
"1 h 6 s 1 ms"
@spec split(non_neg_integer()) :: [non_neg_integer()]
Splits milliseconds into [hours, minutes, seconds, milliseconds].
Examples
iex> alias Buzzword.Cache.Log.TimeUtil
iex> TimeUtil.split(3_666_001)
[1, 1, 6, 1]
iex> alias Buzzword.Cache.Log.TimeUtil
iex> TimeUtil.split(3_660_001)
[1, 1, 0, 1]
iex> alias Buzzword.Cache.Log.TimeUtil
iex> TimeUtil.split(3_606_001)
[1, 0, 6, 1]