Table of Contents

UString Class

public static class UString

Lightning-fast & memory-efficient string builder achieving better performance than DefaultInterpolatedStringHandler.

Inheritance
UString

Fields

RING_BUFFER_SIZE

Properties

CapacityExpansionLimit

Expansion size limit used when extending internal buffer capacity. (no error if trying to add larger size text than this limit)
Smaller size reduces memory usage but more expansion operations happen. (calling memmove internally)

InitialCapacity

Initial capacity for newly allocated internal buffer.

NewLineChars

Used by NewLine()

OverrideEnumFormatter
OverrideFormattableFormatter
OverrideNullableFormatter
OverrideObjectFormatter
OverrideValueTypeFormatter

Methods

ClearPooledBuffer()

Clear per-thread pooled buffer.

Concat<T1>(T1)
Concat<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
Concat<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
Concat<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
Concat<T1, T2>(T1, T2)
Concat<T1, T2, T3>(T1, T2, T3)
Concat<T1, T2, T3, T4>(T1, T2, T3, T4)
Concat<T1, T2, T3, T4, T5>(T1, T2, T3, T4, T5)
Concat<T1, T2, T3, T4, T5, T6>(T1, T2, T3, T4, T5, T6)
Concat<T1, T2, T3, T4, T5, T6, T7>(T1, T2, T3, T4, T5, T6, T7)
Concat<T1, T2, T3, T4, T5, T6, T7, T8>(T1, T2, T3, T4, T5, T6, T7, T8)
Concat<T1, T2, T3, T4, T5, T6, T7, T8, T9>(T1, T2, T3, T4, T5, T6, T7, T8, T9)
Rent()

Lightning-fast & memory-efficient string builder achieving better performance than DefaultInterpolatedStringHandler.

RingBufferScope(char[])

Use your own ring buffer for ToCharSpan<T>(T, ReadOnlySpan<char>, IFormatProvider?) method.

// example usage
using (UString.RingBufferScope(new char[2048]))
{
    var text = intVal.ToCharSpan();
}
ToCharSpan<T>(T, ReadOnlySpan<char>, IFormatProvider?)

Allocation-free instant formatter.