// ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // MIT License #pragma once namespace ArduinoJson { namespace Internals { class Encoding { public: // Optimized for code size on a 8-bit AVR static char escapeChar(char c) { const char *p = escapeTable(false); 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(true); for (;;) { if (p[0] == '\0') return c; if (p[0] == c) return p[1]; p += 2; } } private: static const char *escapeTable(bool excludeIdenticals) { return &"\"\"\\\\b\bf\fn\nr\rt\t"[excludeIdenticals ? 4 : 0]; } }; } }