11#include "platforms/is_platform.h"
40#ifndef FASTLED_STR_INLINED_SIZE
41#define FASTLED_STR_INLINED_SIZE 32
46#if defined(String_class_h)
47#define FL_STRING_NEEDS_ARDUINO_CONVERSION 1
49#define FL_STRING_NEEDS_ARDUINO_CONVERSION 0
52#if FL_STRING_NEEDS_ARDUINO_CONVERSION
64template <
typename T>
struct rect;
65template <
typename T>
struct vec2;
66template <
typename T>
struct vec3;
70template <
typename Key,
typename Hash,
typename KeyEqual>
class HashSet;
74namespace audio {
namespace fft {
class Bins; } }
128 template <fl::size M>
143 copy(sv.data(), sv.size());
148 copy(s.data(), s.size());
152 copy(s.data(), s.size());
159 template <
typename InputIt>
174 template <fl::size M>
204 static constexpr fl::size
npos =
static_cast<fl::size
>(-1);
238 template <typename InputIt>
263 string(
const std::string& str);
265 string&
append(
const std::string& str);
268#if FL_STRING_NEEDS_ARDUINO_CONVERSION
269 string(const ::String& str);
271 string&
append(const ::String& str);
311 for (fl::size i = 0; i < slice.size(); ++i) {
325 template <
typename T, fl::size N>
332 template <
typename T>
346 template <
typename T>
356 template <
typename T>
368 template <
typename T>
370 write(
"WeakPtr(use_count=", 18);
371 write(
static_cast<fl::u32
>(val.use_count()));
376 template <
typename T>
381 write(
"shared_ptr(use_count=", 21);
382 write(
static_cast<fl::u32
>(val.use_count()));
392 template <
typename T, fl::size N>
395 for (fl::size i = 0; i < vec.size(); ++i) {
407 template <
typename T>
421 template <
typename Key,
typename Hash,
typename KeyEqual>
434 template <
typename T>
436 if (opt.has_value()) {
528 bool is_negative =
false;
530 if (
static_cast<i64>(
value) < 0 &&
sizeof(T) <= 8) {
532 unsigned_value =
static_cast<u64>(-
static_cast<i64>(
value));
534 unsigned_value =
static_cast<u64>(
value);
536 return detail::hex(unsigned_value,
width, is_negative, uppercase, pad_to_width);
544 fl::size al = a.size(), bl = b.size();
548 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>).
void setSharedHolder(const fl::shared_ptr< StringHolder > &holder) FL_NO_EXCEPT
void moveFrom(basic_string &&other) FL_NO_EXCEPT
basic_string & appendHex(i32 val) FL_NO_EXCEPT
basic_string & appendOct(i32 val) FL_NO_EXCEPT
basic_string(char *inlineBuffer, fl::size inlineCapacity) FL_NO_EXCEPT
const char * data() const FL_NO_EXCEPT
fl::size write(const fl::u8 *data, fl::size n) FL_NO_EXCEPT
void resize(fl::size count) FL_NO_EXCEPT
void moveAssign(basic_string &&other) FL_NO_EXCEPT
void copy(const char *str) FL_NO_EXCEPT
void assign(const char *str, fl::size len) FL_NO_EXCEPT
fl::size size() const FL_NO_EXCEPT
basic_string & append(const char *str) FL_NO_EXCEPT
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=(string_n &&other) FL_NO_EXCEPT
string_n(InputIt first, InputIt last) FL_NO_EXCEPT
string_n & operator=(const string_n< M > &other) FL_NO_EXCEPT
string_n(const fl::shared_ptr< StringHolder > &holder) FL_NO_EXCEPT
string_n & operator=(const string_n &other) FL_NO_EXCEPT
string_n(const basic_string &other) FL_NO_EXCEPT
string_n(const char *str, fl::size len) FL_NO_EXCEPT
string_n(const string_n< M > &other) FL_NO_EXCEPT
string_n(const char *str) FL_NO_EXCEPT
string_n(const fl::span< char > &s) FL_NO_EXCEPT
string_n(const fl::span< const char > &s) FL_NO_EXCEPT
string_n(const string_view &sv) FL_NO_EXCEPT
string_n(string_n &&other) FL_NO_EXCEPT
string_n(const string_n &other) FL_NO_EXCEPT
string_n(const char(&str)[M]) FL_NO_EXCEPT
string_n(fl::size len, char c) FL_NO_EXCEPT
static int strcmp(const string &a, const string &b) FL_NO_EXCEPT
bool operator!=(const string &other) const FL_NO_EXCEPT
string & operator+=(const string &other) FL_NO_EXCEPT
string & operator+=(const T &val) FL_NO_EXCEPT
string & append(const fl::vector< T > &vec) FL_NO_EXCEPT
bool operator>(const string &other) const FL_NO_EXCEPT
string & operator=(const string &other) FL_NO_EXCEPT
static string from_view(const char *data, fl::size len) FL_NO_EXCEPT
bool operator==(const string &other) const FL_NO_EXCEPT
string & operator=(const char(&str)[N]) FL_NO_EXCEPT
string & intern() FL_NO_EXCEPT
string & append(const fl::span< T > &slice) FL_NO_EXCEPT
string & append(const fl::optional< T > &opt) FL_NO_EXCEPT
string & appendCRGB(const CRGB &c) FL_NO_EXCEPT
string(const char(&str)[N]) FL_NO_EXCEPT
string & append(const vec2< T > &pt) FL_NO_EXCEPT
void swap(string &other) FL_NO_EXCEPT
string & append(const bitset_dynamic &bs) FL_NO_EXCEPT
bool operator>=(const string &other) const FL_NO_EXCEPT
string & append(const HashSet< Key, Hash, KeyEqual > &set) FL_NO_EXCEPT
string & assign(string_view sv) FL_NO_EXCEPT
string & append(const vec3< T > &pt) FL_NO_EXCEPT
string substring(fl::size start, fl::size end) const FL_NO_EXCEPT
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_NO_EXCEPT
string & append(const bitset_fixed< N > &bs) FL_NO_EXCEPT
string & append(const WeakPtr< T > &val) FL_NO_EXCEPT
static string interned(const char *str, fl::size len) FL_NO_EXCEPT
string & append(const fl::FixedVector< T, N > &vec) FL_NO_EXCEPT
string substr(fl::size start, fl::size length) const FL_NO_EXCEPT
string & append(const rect< T > &rect) FL_NO_EXCEPT
static void compileTimeAssertions() FL_NO_EXCEPT
string & append(const bitset_inlined< N > &bs) FL_NO_EXCEPT
static constexpr fl::size npos
bool operator<(const string &other) const FL_NO_EXCEPT
string & append(const fl::InlinedVector< T, N > &vec) FL_NO_EXCEPT
static string copy_no_view(const string &str) FL_NO_EXCEPT
string & append(const fl::shared_ptr< T > &val) FL_NO_EXCEPT
string trim() const FL_NO_EXCEPT
static string from_literal(const char *literal) FL_NO_EXCEPT
bool operator<=(const string &other) const FL_NO_EXCEPT
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_NO_EXCEPT
Compile-time integer width determination (default - triggers error)
constexpr remove_reference< T >::type && move(T &&t) FL_NO_EXCEPT
constexpr int type_rank< T >::value
VectorN< T, INLINED_SIZE > InlinedVector
MapRedBlackTree< Key, T, Compare, fl::allocator_slab< char > > map
FASTLED_FORCE_INLINE CRGB operator+(const CRGB &p1, const CRGB &p2) FL_NO_EXCEPT
Add one CRGB to another, saturating at 0xFF for each channel.
fl::string to_hex(T value, bool uppercase=false, bool pad_to_width=false) FL_NO_EXCEPT
Convert an integer value to hexadecimal string representation.
int memcmp(const void *s1, const void *s2, size_t n) FL_NO_EXCEPT
string_n< 256 > string_large
expected< T, E > result
Alias for expected (Rust-style naming)
string_n< 32 > string_small
InputGamut g FL_NO_EXCEPT
constexpr T * end(T(&array)[N]) FL_NO_EXCEPT
string to_string(T value) FL_NO_EXCEPT
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_NO_EXCEPT