FastLED 3.9.15
Loading...
Searching...
No Matches

◆ operator()() [3/6]

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

Definition at line 353 of file types.h.

353 {
354 // NEW INSTRUCTIONS: AUTO CONVERT STRING TO BOOL
355 // "true", "1", "yes", "on" (case insensitive) → true
356 // "false", "0", "no", "off" (case insensitive) → false
357 // Empty string → false
358 // Invalid string → nullopt
359
360 if (str.empty()) {
361 result = false;
362 return;
363 }
364
365 // Convert to lowercase for case-insensitive comparison
366 fl::string lower = str;
367 for (fl::size i = 0; i < lower.length(); i++) {
368 lower[i] = fl::tolower(lower[i]);
369 }
370
371 // Check for true values
372 if (lower == "true" || lower == "1" || lower == "yes" || lower == "on") {
373 result = true;
374 return;
375 }
376
377 // Check for false values
378 if (lower == "false" || lower == "0" || lower == "no" || lower == "off") {
379 result = false;
380 return;
381 }
382
383 // Invalid string - don't set result (leave as nullopt)
384 }
fl::size length() const FL_NOEXCEPT
bool empty() const FL_NOEXCEPT
char tolower(char c) FL_NOEXCEPT
Convert character to lowercase.
Definition cctype.h:32
fl::optional< bool > result
Definition types.h:323

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

+ Here is the call graph for this function: