31#ifndef ETL_IN_CHRONO_H
32 #error DO NOT DIRECTLY INCLUDE THIS FILE. USE CHRONO.H
46 using rep = uint_least8_t;
51 ETL_CONSTEXPR
day() ETL_NOEXCEPT
59 ETL_CONSTEXPR
explicit day(
unsigned value_) ETL_NOEXCEPT
60 : value(
static_cast<rep
>(value_))
111 value +=
static_cast<rep
>(ds.count());
121 value -=
static_cast<rep
>(ds.count());
129 ETL_NODISCARD ETL_CONSTEXPR14
bool ok() const ETL_NOEXCEPT
131 return (value >= 1U) && (value <= 31U);
137 ETL_CONSTEXPR14
operator unsigned() const ETL_NOEXCEPT
148 ETL_NODISCARD ETL_CONSTEXPR14
int compare(
const day& other)
const ETL_NOEXCEPT
150 if (value < other.value)
152 if (value > other.value)
168 return (
static_cast<unsigned>(d1) ==
static_cast<unsigned>(d2));
184 return (
static_cast<unsigned>(d1) <
static_cast<unsigned>(d2));
192 return (
static_cast<unsigned>(d1) <=
static_cast<unsigned>(d2));
200 return (
static_cast<unsigned>(d1) >
static_cast<unsigned>(d2));
208 return (
static_cast<unsigned>(d1) >=
static_cast<unsigned>(d2));
218 return (
static_cast<unsigned>(d1) <=>
static_cast<unsigned>(d2));
267 return etl::chrono::days(
static_cast<int>(
static_cast<unsigned>(d1)) -
static_cast<int>(
static_cast<unsigned>(d2)));
274#if ETL_USING_8BIT_TYPES
276 struct hash<
etl::chrono::day>
280 etl::chrono::day::rep value =
static_cast<etl::chrono::day::rep
>(
static_cast<unsigned>(d));
281 const uint8_t* p =
reinterpret_cast<const uint8_t*
>(&value);
283 return etl::private_hash::generic_hash<size_t>(p, p +
sizeof(value));
289#if ETL_HAS_CHRONO_LITERALS_DAY
292 inline namespace literals
294 inline namespace chrono_literals
296 #if ETL_USING_VERBOSE_CHRONO_LITERALS
297 inline ETL_CONSTEXPR14 etl::chrono::day
operator""_day(
unsigned long long d) ETL_NOEXCEPT
299 inline ETL_CONSTEXPR14 etl::chrono::day
operator""_d(
unsigned long long d) ETL_NOEXCEPT
302 return etl::chrono::day(
static_cast<unsigned>(d));
ETL_CONSTEXPR14 etl::chrono::day & operator+=(const etl::chrono::days &ds) ETL_NOEXCEPT
Plus-equals operator adding etl::chrono::days.
Definition day.h:109
ETL_CONSTEXPR day() ETL_NOEXCEPT
Default constructor.
Definition day.h:51
ETL_CONSTEXPR14 etl::chrono::day & operator++() ETL_NOEXCEPT
Pre-increment operator.
Definition day.h:67
ETL_NODISCARD ETL_CONSTEXPR14 bool ok() const ETL_NOEXCEPT
Returns true if the day is within the valid 1 to 31 range.
Definition day.h:129
ETL_CONSTEXPR14 etl::chrono::day & operator-=(const etl::chrono::days &ds) ETL_NOEXCEPT
Minus-equals operator subtracting etl::chrono::days.
Definition day.h:119
ETL_CONSTEXPR14 etl::chrono::day & operator--() ETL_NOEXCEPT
Pre-decrement operator.
Definition day.h:88
ETL_NODISCARD ETL_CONSTEXPR14 int compare(const day &other) const ETL_NOEXCEPT
Definition day.h:148
ETL_CONSTEXPR14 etl::chrono::day operator--(int) ETL_NOEXCEPT
Post-decrement operator.
Definition day.h:98
ETL_CONSTEXPR day(unsigned value_) ETL_NOEXCEPT
Construct from unsigned.
Definition day.h:59
ETL_CONSTEXPR14 etl::chrono::day operator++(int) ETL_NOEXCEPT
Post-increment operator.
Definition day.h:77
ETL_CONSTEXPR14 etl::chrono::day operator+(const etl::chrono::day &d, const etl::chrono::days &ds) ETL_NOEXCEPT
Spaceship operator.
Definition day.h:226
ETL_CONSTEXPR14 etl::chrono::day operator-(const etl::chrono::day &d, const etl::chrono::days &ds) ETL_NOEXCEPT
Definition day.h:252
ETL_CONSTEXPR14 bool operator<(const etl::chrono::day &d1, const etl::chrono::day &d2) ETL_NOEXCEPT
Less-than operator.
Definition day.h:182
ETL_CONSTEXPR14 bool operator>=(const etl::chrono::day &d1, const etl::chrono::day &d2) ETL_NOEXCEPT
Greater-than-or-equal operator.
Definition day.h:206
ETL_CONSTEXPR14 bool operator==(const etl::chrono::day &d1, const etl::chrono::day &d2) ETL_NOEXCEPT
Equality operator.
Definition day.h:166
ETL_CONSTEXPR14 bool operator<=(const etl::chrono::day &d1, const etl::chrono::day &d2) ETL_NOEXCEPT
Less-than-or-equal operator.
Definition day.h:190
ETL_CONSTEXPR14 bool operator!=(const etl::chrono::day &d1, const etl::chrono::day &d2) ETL_NOEXCEPT
Inequality operator.
Definition day.h:174
ETL_CONSTEXPR14 bool operator>(const etl::chrono::day &d1, const etl::chrono::day &d2) ETL_NOEXCEPT
Greater-than operator.
Definition day.h:198
bitset_ext
Definition absolute.h:40