Current section
Files
Jump to
Current section
Files
src/bigben@clock.erl
-module(bigben@clock).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([new/0, now/1, from_fake/1]).
-export_type([clock/0]).
-opaque clock() :: {clock, fun(() -> birl:time())}.
-spec new() -> clock().
new() ->
{clock, fun birl:utc_now/0}.
-spec now(clock()) -> birl:time().
now(Clock) ->
(erlang:element(2, Clock))().
-spec from_fake(bigben@fake_clock:fake_clock()) -> clock().
from_fake(Clock) ->
{clock, fun() -> bigben@fake_clock:now(Clock) end}.