SpanEncoders.Utf16Encoder

Namespace: SnowBank.Data.Binary · struct

Implements: ISpanEncoder<string>, ISpanDecoder<string>, ISpanEncoder<ReadOnlyMemory<char>>, ISpanDecoder<ReadOnlyMemory<char>>, ISpanEncoder<StringBuilder>, ISpanEncoder<ReadOnlySpan<char>>

Encodes strings as UTF-16 bytes

Remarks

Each character will be encoded as 2 bytes (in little-endian)

This encoder can produce more compact values than Utf8Encoder when the text contains mostly non-Latin text (which would use up to 3 bytes per character)

Methods

TryDecode

static bool TryDecode(ReadOnlySpan<byte> source, out string value)

static bool TryDecode(ReadOnlySpan<byte> source, out ReadOnlyMemory<char> value)

TryEncode

static bool TryEncode(Span<byte> destination, out int bytesWritten, in string value)

static bool TryEncode(Span<byte> destination, out int bytesWritten, in ReadOnlySpan<char> value)

static bool TryEncode(Span<byte> destination, out int bytesWritten, in ReadOnlyMemory<char> value)

static bool TryEncode(Span<byte> destination, out int bytesWritten, in StringBuilder value)

TryGetSizeHint

static bool TryGetSizeHint(in string value, out int sizeHint)

static bool TryGetSizeHint(in ReadOnlySpan<char> value, out int sizeHint)

static bool TryGetSizeHint(in ReadOnlyMemory<char> value, out int sizeHint)

static bool TryGetSizeHint(in StringBuilder value, out int sizeHint)

TryGetSpan

static bool TryGetSpan(in string value, out ReadOnlySpan<byte> span)

static bool TryGetSpan(in ReadOnlySpan<char> value, out ReadOnlySpan<byte> span)

static bool TryGetSpan(in ReadOnlyMemory<char> value, out ReadOnlySpan<byte> span)

static bool TryGetSpan(in StringBuilder value, out ReadOnlySpan<byte> span)