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<unsigned char>(value_))
85 template <
typename TToDuration,
typename TValue2,
typename TPeriod2>
140 value +=
static_cast<unsigned char>(ds.count());
150 value -=
static_cast<unsigned char>(ds.count());
159 ETL_CONSTEXPR14
bool ok() const ETL_NOEXCEPT
161 return (value >= 1U) && (value <= 31U);
167 ETL_CONSTEXPR14
operator unsigned() const ETL_NOEXCEPT
169 return static_cast<unsigned>(value);
179 ETL_CONSTEXPR14
int compare(
const day& other)
const ETL_NOEXCEPT
181 if (value < other.value)
return -1;
182 if (value > other.value)
return 1;
215 return (
static_cast<unsigned>(d1) ==
static_cast<unsigned>(d2));
231 return (
static_cast<unsigned>(d1) <
static_cast<unsigned>(d2));
239 return (
static_cast<unsigned>(d1) <=
static_cast<unsigned>(d2));
247 return (
static_cast<unsigned>(d1) >
static_cast<unsigned>(d2));
255 return (
static_cast<unsigned>(d1) >=
static_cast<unsigned>(d2));
264 return (
static_cast<unsigned>(d1) <=>
static_cast<unsigned>(d2));
313 return etl::chrono::days(
static_cast<int>(
static_cast<unsigned>(d1)) -
314 static_cast<int>(
static_cast<unsigned>(d2)));
321#if ETL_USING_8BIT_TYPES
323 struct hash<
etl::chrono::day>
327 etl::chrono::day::rep value =
static_cast<etl::chrono::day::rep
>(
static_cast<unsigned>(d));
328 const uint8_t* p =
reinterpret_cast<const uint8_t*
>(&value);
330 return etl::private_hash::generic_hash<size_t>(p, p +
sizeof(value));
336#if ETL_HAS_CHRONO_LITERALS_DAY
339 inline namespace literals
341 inline namespace chrono_literals
343#if ETL_USING_VERBOSE_CHRONO_LITERALS
344 inline ETL_CONSTEXPR14 etl::chrono::day
operator ""_day(
unsigned long long d) ETL_NOEXCEPT
346 inline ETL_CONSTEXPR14 etl::chrono::day
operator ""_d(
unsigned long long d) ETL_NOEXCEPT
349 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:138
ETL_CONSTEXPR day() ETL_NOEXCEPT
Default constructor.
Definition day.h:51
ETL_CONSTEXPR14 etl::chrono::day & operator=(const etl::chrono::day &rhs) ETL_NOEXCEPT
Assignment operator.
Definition day.h:75
ETL_CONSTEXPR14 etl::chrono::day & operator++() ETL_NOEXCEPT
Pre-increment operator.
Definition day.h:96
ETL_CONSTEXPR14 day(const etl::chrono::day &other) ETL_NOEXCEPT
Copy constructor.
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:159
ETL_CONSTEXPR14 etl::chrono::day & operator-=(const etl::chrono::days &ds) ETL_NOEXCEPT
Minus-equals operator subtracting etl::chrono::days.
Definition day.h:148
static ETL_NODISCARD ETL_CONSTEXPR14 etl::chrono::day max() ETL_NOEXCEPT
The maximum day value for which ok() will return true.
Definition day.h:200
ETL_CONSTEXPR14 etl::chrono::day & operator--() ETL_NOEXCEPT
Pre-decrement operator.
Definition day.h:117
ETL_NODISCARD ETL_CONSTEXPR14 int compare(const day &other) const ETL_NOEXCEPT
Definition day.h:179
ETL_CONSTEXPR day(unsigned value_) ETL_NOEXCEPT
Construct from unsigned.
Definition day.h:59
static ETL_NODISCARD ETL_CONSTEXPR14 etl::chrono::day min() ETL_NOEXCEPT
The minimum day value for which ok() will return true.
Definition day.h:191
duration
Definition duration.h:108
ETL_CONSTEXPR14 TToDuration duration_cast(const etl::chrono::duration< TRep, TPeriod > &d) ETL_NOEXCEPT
duration_cast
Definition duration.h:339
bitset_ext
Definition absolute.h:39