public override bool TryEncode(string text, Span <byte> data, out int bytesWritten) { int consumed; var utf16 = text.AsSpan(); return(Utf8Encoder.TryEncode(utf16, data, out consumed, out bytesWritten)); }
public void EncodingPerformanceTestUsingCorefxlab(int charLength, int minCodePoint, int maxCodePoint) { string unicodeString = GenerateString(charLength, minCodePoint, maxCodePoint); ReadOnlySpan <char> characters = unicodeString.AsSpan(); int consumed; int encodedBytes; Assert.True(Utf8Encoder.TryComputeEncodedBytes(characters, out encodedBytes)); byte[] utf8Buffer = new byte[encodedBytes]; Span <byte> span = new Span <byte>(utf8Buffer); foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) if (!Utf8Encoder.TryEncode(characters, span, out consumed, out encodedBytes)) { throw new Exception(); // this should not happen } } }
public override bool TryDecode(ReadOnlySpan <byte> encodedBytes, Span <byte> utf8, out int bytesConsumed, out int bytesWritten) { var utf16 = encodedBytes.NonPortableCast <byte, char>(); return(Utf8Encoder.TryEncode(utf16, utf8, out bytesConsumed, out bytesWritten)); }
public override bool TryEncode(ReadOnlySpan <uint> utf32, Span <byte> data, out int charactersConsumed, out int bytesWritten) { return(Utf8Encoder.TryEncode(utf32, data, out charactersConsumed, out bytesWritten)); }
public override bool TryEncode(ReadOnlySpan <uint> utf32, Span <byte> encodedBytes, out int codeUnitsConsumed, out int bytesWritten) { return(Utf8Encoder.TryEncode(utf32, encodedBytes, out codeUnitsConsumed, out bytesWritten)); }
public override bool TryEncode(ReadOnlySpan <char> utf16, Span <byte> encodedBytes, out int charactersConsumed, out int bytesWritten) { return(Utf8Encoder.TryEncode(utf16, encodedBytes, out charactersConsumed, out bytesWritten)); }