mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 08:42:39 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			853 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			853 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright Benoit Blanchon 2014-2016
 | |
| // MIT License
 | |
| //
 | |
| // Arduino JSON library
 | |
| // https://github.com/bblanchon/ArduinoJson
 | |
| // If you like this project, please add a star!
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "../Print.hpp"
 | |
| 
 | |
| 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];
 | |
|   }
 | |
| };
 | |
| }
 | |
| }
 |