FastLED 3.10.8
Loading...
Searching...
No Matches

◆ operator()() [3/6]

void fl::BoolConversionVisitor::operator() ( const fl::string & str)
inline

Definition at line 384 of file types.h.

384 {
385 // NEW INSTRUCTIONS: AUTO CONVERT STRING TO BOOL
386 // "true", "1", "yes", "on" (case insensitive) → true
387 // "false", "0", "no", "off" (case insensitive) → false
388 // Empty string → false
389 // Invalid string → nullopt
390
391 if (str.empty()) {
392 result = false;
393 return;
394 }
395
396 // Convert to lowercase for case-insensitive comparison
397 fl::string lower = str;
398 for (fl::size i = 0; i < lower.length(); i++) {
399 lower[i] = fl::tolower(lower[i]);
400 }
401
402 // Check for true values
403 if (lower == "true" || lower == "1" || lower == "yes" || lower == "on") {
404 result = true;
405 return;
406 }
407
408 // Check for false values
409 if (lower == "false" || lower == "0" || lower == "no" || lower == "off") {
410 result = false;
411 return;
412 }
413
414 // Invalid string - don't set result (leave as nullopt)
415 }
fl::size length() const FL_NO_EXCEPT
bool empty() const FL_NO_EXCEPT
char tolower(char c) FL_NO_EXCEPT
Convert character to lowercase.
Definition cctype.h:32
fl::optional< bool > result
Definition types.h:354

References fl::FL_NO_EXCEPT, fl::basic_string::length(), result, and fl::tolower().

+ Here is the call graph for this function: