14#include <golxzn/os/aliases.hpp>
18namespace golxzn::os::chrono {
32 constexpr time() =
default;
33 constexpr time(
const time &) =
default;
34 constexpr time(
time &&)
noexcept =
default;
35 constexpr time &operator=(
const time &) =
default;
36 constexpr time &operator=(
time &&)
noexcept =
default;
49 explicit constexpr time(
const std::chrono::microseconds
duration)
noexcept;
63 template<
class Rep,
class Period>
64 explicit constexpr time(
const std::chrono::duration<Rep, Period>
duration)
noexcept;
78 template<
class Clock,
class Duration =
typename Clock::duration>
79 explicit constexpr time(
const std::chrono::time_point<Clock, Duration> time_point)
noexcept;
92 explicit constexpr time(
const utils::floating_point_t<T>
seconds)
noexcept;
124 template<
class T = f64>
125 [[nodiscard]]
constexpr utils::floating_point_t<T>
seconds() const noexcept;
163 template<class Rep, class Period>
164 [[nodiscard]] explicit constexpr operator std::chrono::
duration<Rep, Period>() const noexcept;
166 [[nodiscard]] constexpr
time &operator+=(const
time &rhs) noexcept;
168 [[nodiscard]] constexpr
time &operator+=(const utils::floating_point_t<T>
seconds) noexcept;
172 [[nodiscard]] constexpr
time &operator-=(const
time &rhs) noexcept;
174 [[nodiscard]] constexpr
time &operator-=(const utils::floating_point_t<T>
seconds) noexcept;
179 [[nodiscard]] constexpr
bool operator==(const
time &rhs) const noexcept;
180 [[nodiscard]] constexpr
bool operator!=(const
time &rhs) const noexcept;
181 [[nodiscard]] constexpr
bool operator>=(const
time &rhs) const noexcept;
182 [[nodiscard]] constexpr
bool operator<=(const
time &rhs) const noexcept;
183 [[nodiscard]] constexpr
bool operator> (const
time &rhs) const noexcept;
184 [[nodiscard]] constexpr
bool operator< (const
time &rhs) const noexcept;
191 [[nodiscard]] static constexpr
time zero() noexcept;
213[[nodiscard]]
constexpr time seconds(
const utils::floating_point_t<T> value)
noexcept;
235#include "golxzn/os/chrono/impl/time.inl"
Class that represents time.
Definition time.hpp:30
constexpr i32 milliseconds() const noexcept
Returns duration in milliseconds.
constexpr time(const i64 microseconds) noexcept
Constructor that creates time from microseconds value.
constexpr time(const utils::floating_point_t< T > seconds) noexcept
Constructor that creates time from seconds floating point value.
constexpr i64 microseconds() const noexcept
Returns duration in microseconds.
constexpr time(const std::chrono::time_point< Clock, Duration > time_point) noexcept
Constructor that creates time from std::chrono::time_point.
static time now() noexcept
Now time.
constexpr utils::floating_point_t< T > seconds() const noexcept
Returns duration in seconds.
static constexpr time zero() noexcept
Zero time.
constexpr time(const i32 milliseconds) noexcept
Constructor that creates time from milliseconds value.
constexpr time(const std::chrono::microseconds duration) noexcept
Constructor that creates time from std::chrono::microseconds.
constexpr std::chrono::microseconds duration() const noexcept
Converts time to std::chrono::duration.
constexpr time(const std::chrono::duration< Rep, Period > duration) noexcept
Constructor that creates time from std::chrono::duration.
constexpr time milliseconds(const i32 value) noexcept
Make time from integer value (milliseconds).
constexpr time seconds(const utils::floating_point_t< T > value) noexcept
Make time from floating point value (seconds).
constexpr time microseconds(const i64 value) noexcept
Make time from integer value (microseconds).
Useful functions and aliases for golxzn::os::chrono.