# System.Text ``` diff namespace System.Text { public abstract class Decoder { + public virtual void Convert(ReadOnlySpan bytes, Span chars, bool flush, out int bytesUsed, out int charsUsed, out bool completed); + public virtual int GetCharCount(ReadOnlySpan bytes, bool flush); + public virtual int GetChars(ReadOnlySpan bytes, Span chars, bool flush); } public abstract class Encoder { + public virtual void Convert(ReadOnlySpan chars, Span bytes, bool flush, out int charsUsed, out int bytesUsed, out bool completed); + public virtual int GetByteCount(ReadOnlySpan chars, bool flush); + public virtual int GetBytes(ReadOnlySpan chars, Span bytes, bool flush); } public abstract class Encoding : ICloneable { + public virtual ReadOnlySpan Preamble { get; } + public virtual int GetByteCount(ReadOnlySpan chars); + public virtual int GetBytes(ReadOnlySpan chars, Span bytes); + public virtual int GetCharCount(ReadOnlySpan bytes); + public virtual int GetChars(ReadOnlySpan bytes, Span chars); + public string GetString(ReadOnlySpan bytes); } public sealed class StringBuilder : ISerializable { + public StringBuilder Append(ReadOnlySpan value); + public StringBuilder Append(StringBuilder value); + public StringBuilder Append(StringBuilder value, int startIndex, int count); + public void CopyTo(int sourceIndex, Span destination, int count); + public bool Equals(ReadOnlySpan span); + public StringBuilder Insert(int index, ReadOnlySpan value); } } ```