//// Canonical workflow duration quantities. /// A workflow duration normalised to milliseconds for the FFI boundary. pub opaque type Duration { Duration(milliseconds: Int) } /// Construct a duration from milliseconds. pub fn milliseconds(value: Int) -> Duration { Duration(milliseconds: value) } /// Construct a duration from seconds. pub fn seconds(value: Int) -> Duration { Duration(milliseconds: value * 1000) } /// Construct a duration from minutes. pub fn minutes(value: Int) -> Duration { Duration(milliseconds: value * 60 * 1000) } /// Construct a duration from hours. pub fn hours(value: Int) -> Duration { Duration(milliseconds: value * 60 * 60 * 1000) } /// Construct a duration from days. pub fn days(value: Int) -> Duration { Duration(milliseconds: value * 24 * 60 * 60 * 1000) } /// Return the canonical millisecond representation used at the FFI boundary. pub fn to_milliseconds(duration: Duration) -> Int { duration.milliseconds }