// CreateStringRunner using System; using System.Text; namespace Leguar.TotalJSON.Internal { internal class CreateStringRunner { private readonly CreateStringSettings settings; private readonly StringBuilder builder; private readonly string newLineString; private readonly string indentString; private int currentIndent; internal CreateStringRunner(CreateStringSettings settings) { this.settings = settings; builder=new StringBuilder(); newLineString=getNewLineString(); if (settings.HumanReadable) { if (settings.IndentUsingTab) { indentString="\t"; } else { indentString=new string(' ',settings.IndentSpaceCount); } currentIndent=0; } } internal void append(char chr) { builder.Append(chr); } internal void append(char chr, bool space) { builder.Append(chr); if (space && settings.HumanReadable) { builder.Append(' '); } } internal void append(string str) { builder.Append(str); } internal void append(char chr1, char chr2) { builder.Append(chr1); if (settings.HumanReadable) { builder.Append(' '); } builder.Append(chr2); } internal void append(char chr, int indentChange) { builder.Append(chr); if (settings.HumanReadable) { builder.Append(newLineString); currentIndent += indentChange; for (int n = 0; n