Go to the documentation of this file.
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);
103 return (value <
min) ?
min : (value >
max) ?
max : value;
115 auto value = os_random();
116 return min + value % n;
119 Iterator
begin()
const
121 return Iterator{
min};
126 return Iterator{T(
max + 1)};
std::random_access_iterator_tag iterator_category
Definition: Range.h:40
String toString(TRange< T > range)
Definition: Range.h:144
T max
Definition: Range.h:31
The String class.
Definition: WString.h:136
bool operator==(const Iterator &other) const
Definition: Range.h:51
Iterator end() const
Definition: Range.h:132
T operator*() const
Definition: Range.h:46
Manage a range of numbers between specified limits.
Definition: Range.h:21
T & reference
Definition: Range.h:39
std::ptrdiff_t difference_type
Definition: Range.h:37
T value_type
Definition: Range.h:36
T random() const
Return a random value within the range.
Definition: Range.h:117
bool operator!=(const Iterator &other) const
Definition: Range.h:56
String toString() const
Definition: Range.h:137
bool contains(T value) const
Determine if range contains a value.
Definition: Range.h:93
Iterator(T value)
Definition: Range.h:42
T clip(T value) const
Clip values to within the range.
Definition: Range.h:109
Iterator begin() const
Definition: Range.h:127
constexpr TRange()
Definition: Range.h:78
Iterator & operator++()
Definition: Range.h:68
T * pointer
Definition: Range.h:38
T min
Definition: Range.h:30