// ArduinoJson - https://arduinojson.org // Copyright Benoit Blanchon 2014-2021 // MIT License #pragma once #include namespace ARDUINOJSON_NAMESPACE { class EscapeSequence { public: // Optimized for code size on a 8-bit AVR static char escapeChar(char c) { const char *p = escapeTable(true); while (p[0] && p[1] != c) { p += 2; } return p[0]; } // Optimized for code size on a 8-bit AVR static char unescapeChar(char c) { const char *p = escapeTable(false); for (;;) { if (p[0] == '\0') return 0; if (p[0] == c) return p[1]; p += 2; } } private: static const char *escapeTable(bool excludeSolidus) { return &"//\"\"\\\\b\bf\fn\nr\rt\t"[excludeSolidus ? 2 : 0]; } }; } // namespace ARDUINOJSON_NAMESPACE