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;
String toString(TRange< T > range)
Definition: Range.h:144
The String class.
Definition: WString.h:137
Iterator(T value)
Definition: Range.h:34
T value_type
Definition: Range.h:28
Iterator & operator++()
Definition: Range.h:60
std::random_access_iterator_tag iterator_category
Definition: Range.h:32
bool operator==(const Iterator &other) const
Definition: Range.h:43
Iterator operator++(int)
Definition: Range.h:53
T & reference
Definition: Range.h:31
std::ptrdiff_t difference_type
Definition: Range.h:29
T operator*() const
Definition: Range.h:38
T * pointer
Definition: Range.h:30
bool operator!=(const Iterator &other) const
Definition: Range.h:48
Manage a range of numbers between specified limits.
Definition: Range.h:21
constexpr TRange(T min, T max)
Definition: Range.h:74
T clip(T value) const
Clip values to within the range.
Definition: Range.h:101
T random() const
Return a random value within the range.
Definition: Range.h:109
Iterator end() const
Definition: Range.h:124
bool contains(const TRange< Q > &value) const
Determine if range contains another range (subset)
Definition: Range.h:93
Iterator begin() const
Definition: Range.h:119
constexpr TRange(T count)
Definition: Range.h:78
constexpr TRange()
Definition: Range.h:70
bool contains(T value) const
Determine if range contains a value.
Definition: Range.h:85
T min
Definition: Range.h:22
T max
Definition: Range.h:23
String toString() const
Definition: Range.h:129