11#include "platforms/is_platform.h"
31#ifndef FASTLED_STR_INLINED_SIZE
32#define FASTLED_STR_INLINED_SIZE 64
37#if defined(String_class_h)
38#define FL_STRING_NEEDS_ARDUINO_CONVERSION 1
40#define FL_STRING_NEEDS_ARDUINO_CONVERSION 0
43#if FL_STRING_NEEDS_ARDUINO_CONVERSION
55template <
typename T>
struct rect;
56template <
typename T>
struct vec2;
57template <
typename T>
struct vec3;
61template <
typename Key,
typename Hash,
typename KeyEqual>
class HashSet;
65namespace audio {
namespace fft {
class Bins; } }
119 template <fl::size M>
134 copy(sv.data(), sv.size());
139 copy(s.data(), s.size());
143 copy(s.data(), s.size());
150 template <
typename InputIt>
165 template <fl::size M>
195 static constexpr fl::size
npos =
static_cast<fl::size
>(-1);
229 template <typename InputIt>
254 string(
const std::string& str);
256 string&
append(
const std::string& str);
259#if FL_STRING_NEEDS_ARDUINO_CONVERSION
260 string(const ::String& str);
262 string&
append(const ::String& str);
302 for (fl::size i = 0; i < slice.size(); ++i) {
316 template <
typename T, fl::size N>
323 template <
typename T>
337 template <
typename T>
347 template <
typename T>
359 template <
typename T>
361 write(
"WeakPtr(use_count=", 18);
362 write(
static_cast<fl::u32
>(val.use_count()));
367 template <
typename T>
372 write(
"shared_ptr(use_count=", 21);
373 write(
static_cast<fl::u32
>(val.use_count()));
383 template <
typename T, fl::size N>
386 for (fl::size i = 0; i < vec.size(); ++i) {
398 template <
typename T>
412 template <
typename Key,
typename Hash,
typename KeyEqual>
425 template <
typename T>
427 if (opt.has_value()) {
519 bool is_negative =
false;
521 if (
static_cast<i64>(
value) < 0 &&
sizeof(T) <= 8) {
523 unsigned_value =
static_cast<u64>(-
static_cast<i64>(
value));
525 unsigned_value =
static_cast<u64>(
value);
527 return detail::hex(unsigned_value,
width, is_negative, uppercase, pad_to_width);
535 fl::size al = a.size(), bl = b.size();
539 return fl::memcmp(a.c_str(), b.c_str(), al) < 0;
Concrete type-erased string class operating on a caller- provided buffer (or fl::span<char>).
fl::size write(const fl::u8 *data, fl::size n) FL_NOEXCEPT
void copy(const char *str) FL_NOEXCEPT
void resize(fl::size count) FL_NOEXCEPT
void assign(const char *str, fl::size len) FL_NOEXCEPT
const char * data() const FL_NOEXCEPT
basic_string & append(const char *str) FL_NOEXCEPT
basic_string & appendHex(i32 val) FL_NOEXCEPT
basic_string(char *inlineBuffer, fl::size inlineCapacity) FL_NOEXCEPT
void moveFrom(basic_string &&other) FL_NOEXCEPT
void setSharedHolder(const fl::shared_ptr< StringHolder > &holder) FL_NOEXCEPT
void moveAssign(basic_string &&other) FL_NOEXCEPT
fl::size size() const FL_NOEXCEPT
basic_string & appendOct(i32 val) FL_NOEXCEPT
Concrete type-erased string class.
A dynamic bitset implementation that can be resized at runtime.
const_iterator begin() const
const_iterator end() const
string_n & operator=(const string_n &other) FL_NOEXCEPT
string_n(const fl::shared_ptr< StringHolder > &holder) FL_NOEXCEPT
string_n(const char *str) FL_NOEXCEPT
string_n(const char(&str)[M]) FL_NOEXCEPT
string_n(const basic_string &other) FL_NOEXCEPT
string_n(string_n &&other) FL_NOEXCEPT
string_n(const fl::span< const char > &s) FL_NOEXCEPT
string_n(const char *str, fl::size len) FL_NOEXCEPT
string_n & operator=(const string_n< M > &other) FL_NOEXCEPT
string_n(const string_n< M > &other) FL_NOEXCEPT
string_n(fl::size len, char c) FL_NOEXCEPT
string_n(const fl::span< char > &s) FL_NOEXCEPT
string_n(const string_view &sv) FL_NOEXCEPT
string_n(const string_n &other) FL_NOEXCEPT
string_n(InputIt first, InputIt last) FL_NOEXCEPT
string_n & operator=(string_n &&other) FL_NOEXCEPT
string & append(const bitset_inlined< N > &bs) FL_NOEXCEPT
string substr(fl::size start, fl::size length) const FL_NOEXCEPT
string & append(const fl::span< T > &slice) FL_NOEXCEPT
static string interned(const char *str, fl::size len) FL_NOEXCEPT
string & appendCRGB(const CRGB &c) FL_NOEXCEPT
string trim() const FL_NOEXCEPT
bool operator<=(const string &other) const FL_NOEXCEPT
string & operator+=(const string &other) FL_NOEXCEPT
fl::enable_if< fl::is_same< decltype(static_cast< constT * >(nullptr) ->to_float()), float >::value &&!fl::is_floating_point< T >::value, string & >::type append(const T &val) FL_NOEXCEPT
void swap(string &other) FL_NOEXCEPT
static int strcmp(const string &a, const string &b) FL_NOEXCEPT
bool operator!=(const string &other) const FL_NOEXCEPT
string & assign(string_view sv) FL_NOEXCEPT
bool operator==(const string &other) const FL_NOEXCEPT
string & append(const bitset_fixed< N > &bs) FL_NOEXCEPT
string substring(fl::size start, fl::size end) const FL_NOEXCEPT
string & operator=(const string &other) FL_NOEXCEPT
bool operator>=(const string &other) const FL_NOEXCEPT
string & append(const fl::shared_ptr< T > &val) FL_NOEXCEPT
string & append(const vec2< T > &pt) FL_NOEXCEPT
string(const char(&str)[N]) FL_NOEXCEPT
string & append(const fl::optional< T > &opt) FL_NOEXCEPT
bool operator<(const string &other) const FL_NOEXCEPT
string & operator=(const char(&str)[N]) FL_NOEXCEPT
string & append(const bitset_dynamic &bs) FL_NOEXCEPT
string & append(const fl::InlinedVector< T, N > &vec) FL_NOEXCEPT
static string copy_no_view(const string &str) FL_NOEXCEPT
string & append(const vec3< T > &pt) FL_NOEXCEPT
static string from_literal(const char *literal) FL_NOEXCEPT
static constexpr fl::size npos
string & append(const fl::vector< T > &vec) FL_NOEXCEPT
string & append(const WeakPtr< T > &val) FL_NOEXCEPT
string & append(const HashSet< Key, Hash, KeyEqual > &set) FL_NOEXCEPT
bool operator>(const string &other) const FL_NOEXCEPT
static string from_view(const char *data, fl::size len) FL_NOEXCEPT
string & append(const fl::FixedVector< T, N > &vec) FL_NOEXCEPT
string & append(const rect< T > &rect) FL_NOEXCEPT
string & operator+=(const T &val) FL_NOEXCEPT
static void compileTimeAssertions() FL_NOEXCEPT
string & intern() FL_NOEXCEPT
fl::UISlider length("Length", 1.0f, 0.0f, 1.0f, 0.01f)
fl::string hex(u64 value, HexIntWidth width, bool is_negative, bool uppercase, bool pad_to_width)
Internal hex conversion function (implementation in charconv.cpp)
constexpr HexIntWidth get_hex_int_width() FL_NOEXCEPT
Compile-time integer width determination (default - triggers error)
constexpr remove_reference< T >::type && move(T &&t) FL_NOEXCEPT
string to_string(T value) FL_NOEXCEPT
constexpr int type_rank< T >::value
VectorN< T, INLINED_SIZE > InlinedVector
MapRedBlackTree< Key, T, Compare, fl::allocator_slab< char > > map
constexpr T * end(T(&array)[N]) FL_NOEXCEPT
FASTLED_FORCE_INLINE CRGB operator+(const CRGB &p1, const CRGB &p2) FL_NOEXCEPT
Add one CRGB to another, saturating at 0xFF for each channel.
int memcmp(const void *s1, const void *s2, size_t n) FL_NOEXCEPT
fl::string to_hex(T value, bool uppercase=false, bool pad_to_width=false) FL_NOEXCEPT
Convert an integer value to hexadecimal string representation.
string_n< 256 > string_large
expected< T, E > result
Alias for expected (Rust-style naming)
string_n< 32 > string_small
Base definition for an LED controller.
#define FASTLED_STR_INLINED_SIZE
std::string compatible string class.
Representation of an 8-bit RGB pixel (Red, Green, Blue)
bool operator()(const string &a, const string &b) const FL_NOEXCEPT