-module(aion@duration). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/aion/duration.gleam"). -export([milliseconds/1, seconds/1, minutes/1, hours/1, days/1, to_milliseconds/1]). -export_type([duration/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC(" Canonical workflow duration quantities.\n"). -opaque duration() :: {duration, integer()}. -file("src/aion/duration.gleam", 9). ?DOC(" Construct a duration from milliseconds.\n"). -spec milliseconds(integer()) -> duration(). milliseconds(Value) -> {duration, Value}. -file("src/aion/duration.gleam", 14). ?DOC(" Construct a duration from seconds.\n"). -spec seconds(integer()) -> duration(). seconds(Value) -> {duration, Value * 1000}. -file("src/aion/duration.gleam", 19). ?DOC(" Construct a duration from minutes.\n"). -spec minutes(integer()) -> duration(). minutes(Value) -> {duration, (Value * 60) * 1000}. -file("src/aion/duration.gleam", 24). ?DOC(" Construct a duration from hours.\n"). -spec hours(integer()) -> duration(). hours(Value) -> {duration, ((Value * 60) * 60) * 1000}. -file("src/aion/duration.gleam", 29). ?DOC(" Construct a duration from days.\n"). -spec days(integer()) -> duration(). days(Value) -> {duration, (((Value * 24) * 60) * 60) * 1000}. -file("src/aion/duration.gleam", 34). ?DOC(" Return the canonical millisecond representation used at the FFI boundary.\n"). -spec to_milliseconds(duration()) -> integer(). to_milliseconds(Duration) -> erlang:element(2, Duration).