Rune.DecodeLastFromUtf8(ReadOnlySpan<Byte>, Rune, Int32) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Decodes the Rune at the end of the provided UTF-8 source buffer.
public:
static System::Buffers::OperationStatus DecodeLastFromUtf8(ReadOnlySpan<System::Byte> source, [Runtime::InteropServices::Out] System::Text::Rune % value, [Runtime::InteropServices::Out] int % bytesConsumed);
public static System.Buffers.OperationStatus DecodeLastFromUtf8 (ReadOnlySpan<byte> source, out System.Text.Rune value, out int bytesConsumed);
static member DecodeLastFromUtf8 : ReadOnlySpan<byte> * Rune * int -> System.Buffers.OperationStatus
Public Shared Function DecodeLastFromUtf8 (source As ReadOnlySpan(Of Byte), ByRef value As Rune, ByRef bytesConsumed As Integer) As OperationStatus
Parameters
- source
- ReadOnlySpan<Byte>
A read-only UTF-8 encoded byte span.
- value
- Rune
When this method returns, the decoded rune.
- bytesConsumed
- Int32
When this method returns, the number of bytes read to create the rune.
Returns
Done if the source buffer ends with a valid UTF-8 encoded scalar value. result
then contains the decoded Rune, and bytesConsumed
contains the number of Byte values used in the input buffer to encode the Rune.
NeedMoreData if the source buffer is empty or contains only a standalone UTF-8 high surrogate character. result
then contains ReplacementChar, and bytesConsumed
contains the length of the input buffer.
InvalidData if the source buffer ends with an ill-formed UTF-8 encoded scalar value. result
then contains ReplacementChar, and bytesConsumed
contains the number of Byte values used in the input buffer to encode the ill-formed sequence.
Remarks
This method is very similar to DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32), except it allows the caller to loop backward instead of forward. The typical calling convention is that on each iteration of the loop, the caller should slice off the final bytesConsumed
elements of the source
buffer.