/src/arduinojson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp
Line | Count | Source |
1 | | // ArduinoJson - https://arduinojson.org |
2 | | // Copyright © 2014-2025, Benoit BLANCHON |
3 | | // MIT License |
4 | | |
5 | | #pragma once |
6 | | |
7 | | #include <ArduinoJson/Namespace.hpp> |
8 | | |
9 | | ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE |
10 | | |
11 | | class StaticStringWriter { |
12 | | public: |
13 | 0 | StaticStringWriter(char* buf, size_t size) : end(buf + size), p(buf) {} |
14 | | |
15 | 0 | size_t write(uint8_t c) { |
16 | 0 | if (p >= end) |
17 | 0 | return 0; |
18 | 0 | *p++ = static_cast<char>(c); |
19 | 0 | return 1; |
20 | 0 | } |
21 | | |
22 | 0 | size_t write(const uint8_t* s, size_t n) { |
23 | 0 | char* begin = p; |
24 | 0 | while (p < end && n > 0) { |
25 | 0 | *p++ = static_cast<char>(*s++); |
26 | 0 | n--; |
27 | 0 | } |
28 | 0 | return size_t(p - begin); |
29 | 0 | } |
30 | | |
31 | | private: |
32 | | char* end; |
33 | | char* p; |
34 | | }; |
35 | | |
36 | | ARDUINOJSON_END_PRIVATE_NAMESPACE |