| 10 | |
| 11 | namespace NJsonOrderedWriter { |
| 12 | TBuf::TBuf(EHtmlEscapeMode mode, IOutputStream* stream) |
| 13 | : Stream(stream) |
| 14 | , NeedComma(false) |
| 15 | , NeedNewline(false) |
| 16 | , EscapeMode(mode) |
| 17 | , IndentSpaces(0) |
| 18 | , WriteNanAsString(false) |
| 19 | { |
| 20 | Y_ASSERT(mode == HEM_DONT_ESCAPE_HTML || |
| 21 | mode == HEM_ESCAPE_HTML || |
| 22 | mode == HEM_RELAXED || |
| 23 | mode == HEM_UNSAFE); |
| 24 | if (!Stream) { |
| 25 | StringStream.Reset(new TStringStream); |
| 26 | Stream = StringStream.Get(); |
| 27 | } |
| 28 | Stack.reserve(64); // should be enough for most cases |
| 29 | StackPush(JE_OUTER_SPACE); |
| 30 | } |
| 31 | |
| 32 | static TStringBuf EntityToStr(EJsonEntity e) { |
| 33 | switch (e) { |