public bool Equals(StringBuffer other) { if (other is null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } if (Count != other.Count) { return(false); } var t = this.GetEnumerator(); var o = other.GetEnumerator(); bool result = true; while (o.MoveNext() && t.MoveNext()) { if (t.Current != o.Current) { result = false; break; } } t.Dispose(); o.Dispose(); return(result); }
public EmException(StringBuffer currentBuffer) { this.CurrentBuffer = currentBuffer; }
public EmException(string message, StringBuffer currentBuffer) : base(message) { this.CurrentBuffer = currentBuffer; }
internal static string ReadUntilDelimiter(StringBuffer fullString, char delimeter) { return(ReadUntilDelimiter(fullString, new HashSet <char> { delimeter })); }
public string PrettyPrint() { string originalValue = ToString(); if (string.IsNullOrEmpty(originalValue)) { return(string.Empty); } var originalString = new StringBuffer(originalValue); var prettyString = new StringBuffer(); int indentLevel = 0; const int indentSize = 4; do { switch (originalString.PeekStart()) { case SpChar_BeginComplexValue: prettyString.PushToEnd('\r', '\n'); prettyString.PushToEnd(' ', indentLevel * indentSize); indentLevel++; prettyString.PushToEnd(originalString.PopFromStart()); prettyString.PushToEnd('\r', '\n'); prettyString.PushToEnd(' ', indentLevel * indentSize); prettyString.PushToEnd(originalString.PopFromStart()); break; case SpChar_ValueDelimiter: prettyString.PushToEnd(originalString.PopFromStart()); if (originalString.IsEmpty || originalString.PeekStart() == SpChar_FinishComplexValue) { indentLevel--; } prettyString.PushToEnd('\r', '\n'); prettyString.PushToEnd(' ', indentLevel * indentSize); break; case SpChar_CommentBlock: prettyString.PushToEnd(originalString.PopFromStart()); do { prettyString.PushToEnd(originalString.PopFromStart()); } while (!originalString.IsEmpty && prettyString.PeekEnd() != SpChar_CommentBlock); prettyString.PushToEnd('\r', '\n'); prettyString.PushToEnd(' ', indentLevel * indentSize); break; case SpChar_KeyDelimiter: prettyString.PushToEnd(originalString.PopFromStart()); prettyString.PushToEnd(' '); // Add a space after every KeyDelilmiter break; default: prettyString.PushToEnd(originalString.PopFromStart()); break; } } while (!originalString.IsEmpty); return(prettyString.ToString()); }
protected virtual string ExtractValue(StringBuffer fullString) { return(ReadUntilDelimiter(fullString, SpChar_ValueDelimiter).ToString()); }
public StringBuffer(StringBuffer original) : base(original) { }