14 #include <esp_systemapi.h> 21 template <
typename T>
struct TRange {
45 return value == other.value;
50 return !(*
this == other);
87 return (value >=
min) && (value <=
max);
95 return (value <
min) ?
min : (value >
max) ?
max : value;
107 auto value = os_random();
108 return min + value % n;
Iterator & operator++()
Definition: Range.h:60
bool operator==(const Iterator &other) const
Definition: Range.h:43
T * pointer
Definition: Range.h:30
Iterator(T value)
Definition: Range.h:34
Manage a range of numbers between specified limits.
Definition: Range.h:21
T max
Definition: Range.h:23
constexpr TRange()
Definition: Range.h:70
T random() const
Return a random value within the range.
Definition: Range.h:101
The String class.
Definition: WString.h:136
T min
Definition: Range.h:22
Iterator end() const
Definition: Range.h:116
std::random_access_iterator_tag iterator_category
Definition: Range.h:32
std::ptrdiff_t difference_type
Definition: Range.h:29
bool contains(T value) const
Determine if range contains a value.
Definition: Range.h:85
T value_type
Definition: Range.h:28
bool operator!=(const Iterator &other) const
Definition: Range.h:48
constexpr TRange(T min, T max)
Definition: Range.h:74
String toString() const
Definition: Range.h:121
Iterator begin() const
Definition: Range.h:111
T operator*() const
Definition: Range.h:38
T & reference
Definition: Range.h:31
constexpr TRange(T count)
Definition: Range.h:78
Iterator operator++(int)
Definition: Range.h:53
T clip(T value) const
Clip values to within the range.
Definition: Range.h:93