Buzzword.Cache.Log.TimeUtil (Buzzword Cache v0.1.15)

Copy Markdown View Source

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

format(duration_split, units \\ [:h, :min, :s, :ms])

@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"

split(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]