22 instantiations of Rune
Microsoft.CodeAnalysis.CSharp.Features (1)
ConvertToRawString\ConvertToRawStringHelpers.cs (1)
119
!IsFormatOrControl(Rune.GetUnicodeCategory(new
Rune
(ch, characters[i + 1]))))
System.Private.CoreLib (13)
src\libraries\Common\src\System\Number.Formatting.Common.cs (1)
879
var r = new
Rune
(ch);
src\libraries\System.Private.CoreLib\src\System\Char.cs (1)
212
new
Rune
(this).TryEncodeToUtf8(utf8Destination, out bytesWritten);
src\libraries\System.Private.CoreLib\src\System\Globalization\DateTimeFormat.cs (1)
756
var r = new
Rune
(ch);
src\libraries\System.Private.CoreLib\src\System\Globalization\TextInfo.cs (4)
515
return new
Rune
(lowerChars[0], lowerChars[1]);
519
return new
Rune
(lowerChar);
537
return new
Rune
(upperChars[0], upperChars[1]);
541
return new
Rune
(upperChar);
src\libraries\System.Private.CoreLib\src\System\Text\ASCIIEncoding.cs (1)
810
value = new
Rune
(b);
src\libraries\System.Private.CoreLib\src\System\Text\Latin1Encoding.cs (1)
691
value = new
Rune
(b);
src\libraries\System.Private.CoreLib\src\System\Text\Rune.cs (4)
146
public static explicit operator Rune(char ch) => new
Rune
(ch);
149
public static explicit operator Rune(uint value) => new
Rune
(value);
151
public static explicit operator Rune(int value) => new
Rune
(value);
1238
internal static Rune UnsafeCreate(uint scalarValue) => new
Rune
(scalarValue, false);
System.Private.Uri (1)
System\IriHelper.cs (1)
151
rune = new
Rune
(ch, ch2);
System.Runtime.Numerics (1)
src\libraries\Common\src\System\Number.Formatting.Common.cs (1)
879
var r = new
Rune
(ch);
System.Text.Encodings.Web (5)
System\Text\Encodings\Web\DefaultHtmlEncoder.cs (1)
54
=> !_innerEncoder.IsScalarValueAllowed(new
Rune
(unicodeScalar));
System\Text\Encodings\Web\DefaultJavaScriptEncoder.cs (1)
66
=> !_innerEncoder.IsScalarValueAllowed(new
Rune
(unicodeScalar));
System\Text\Encodings\Web\DefaultUrlEncoder.cs (1)
129
=> !_innerEncoder.IsScalarValueAllowed(new
Rune
(unicodeScalar));
System\Text\Encodings\Web\OptimizedInboxTextEncoder.Ascii.cs (1)
36
Rune rune = new
Rune
(i); // guaranteed to succeed
System\Text\Encodings\Web\OptimizedInboxTextEncoder.cs (1)
118
int innerCharsWritten = _scalarEscaper.EncodeUtf16(new
Rune
(unicodeScalar), destination);
System.Text.Json (1)
System\Text\Json\Reader\JsonReaderHelper.Unescaping.cs (1)
487
var rune = new
Rune
(scalar);
431 references to Rune
aspire (1)
Utils\EmojiWidth.cs (1)
43
var
rune = enumerator.Current;
Microsoft.AspNetCore.Components (2)
src\Shared\UrlDecoder\UrlDecoder.cs (2)
524
if (!System.Text.
Rune
.TryCreate(currentDecodeBits, out
var
rune) || !rune.TryEncodeToUtf16(buffer.Slice(destinationIndex), out var charsWritten))
Microsoft.AspNetCore.Http.Abstractions (2)
src\Shared\UrlDecoder\UrlDecoder.cs (2)
524
if (!System.Text.
Rune
.TryCreate(currentDecodeBits, out
var
rune) || !rune.TryEncodeToUtf16(buffer.Slice(destinationIndex), out var charsWritten))
Microsoft.AspNetCore.Server.Kestrel.Core (2)
src\Shared\UrlDecoder\UrlDecoder.cs (2)
524
if (!System.Text.
Rune
.TryCreate(currentDecodeBits, out
var
rune) || !rune.TryEncodeToUtf16(buffer.Slice(destinationIndex), out var charsWritten))
Microsoft.AspNetCore.Shared.Tests (2)
src\Shared\UrlDecoder\UrlDecoder.cs (2)
524
if (!System.Text.
Rune
.TryCreate(currentDecodeBits, out
var
rune) || !rune.TryEncodeToUtf16(buffer.Slice(destinationIndex), out var charsWritten))
Microsoft.AspNetCore.WebUtilities (2)
src\Shared\UrlDecoder\UrlDecoder.cs (2)
524
if (!System.Text.
Rune
.TryCreate(currentDecodeBits, out
var
rune) || !rune.TryEncodeToUtf16(buffer.Slice(destinationIndex), out var charsWritten))
Microsoft.CodeAnalysis.CSharp.Features (6)
ConvertToRawString\ConvertToRawStringHelpers.cs (1)
119
!IsFormatOrControl(
Rune
.GetUnicodeCategory(new Rune(ch, characters[i + 1]))))
src\Analyzers\CSharp\Analyzers\UseUtf8StringLiteral\UseUtf8StringLiteralDiagnosticAnalyzer.cs (5)
155
if (!TryGetNextRune(arrayCreationElements, i, out
var
rune, out var bytesConsumed) ||
181
static bool IsControlOrFormatRune(
Rune
rune)
182
=>
Rune
.GetUnicodeCategory(rune) is UnicodeCategory.Control or UnicodeCategory.Format
192
private static bool TryGetNextRune(ImmutableArray<IOperation> arrayCreationElements, int startIndex, out
Rune
rune, out int bytesConsumed)
213
return
Rune
.DecodeFromUtf8(array, out rune, out bytesConsumed) == System.Buffers.OperationStatus.Done;
Microsoft.CodeAnalysis.CSharp.Workspaces (1)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\RuneExtensions.cs (1)
15
public static bool TryGetEscapeCharacter(this
Rune
rune, out char escapedChar)
Microsoft.ML.Tokenizers (2)
Utils\Helpers.netcoreapp.cs (2)
83
Rune
.DecodeFromUtf16(text.Slice(textIndex), out
Rune
rune, out int charsConsumed);
Microsoft.ML.Tokenizers.Tests (2)
src\Microsoft.ML.Tokenizers\Utils\Helpers.netcoreapp.cs (2)
83
Rune
.DecodeFromUtf16(text.Slice(textIndex), out
Rune
rune, out int charsConsumed);
Microsoft.Net.Http.Headers (3)
ContentDispositionHeaderValue.cs (3)
645
Rune
.DecodeFromUtf16(remaining.Slice(i), out
Rune
rune, out var runeLength);
660
private static void EncodeToUtf8Hex(
Rune
rune, StringBuilder builder)
System.Collections.Immutable (1)
System\Collections\Frozen\Constants.cs (1)
64
typeof(T) == typeof(
Rune
) ||
System.Formats.Tar (1)
System\Formats\Tar\TarHeader.Write.cs (1)
1267
foreach (
Rune
rune in text.EnumerateRunes())
System.Private.CoreLib (345)
src\libraries\Common\src\System\Number.Formatting.Common.cs (1)
879
var
r = new Rune(ch);
src\libraries\System.Private.CoreLib\src\System\Char.cs (5)
256
if (
Rune
.DecodeFromUtf8(utf8Text, out
Rune
rune, out int bytesConsumed) != Buffers.OperationStatus.Done ||
273
if (
Rune
.DecodeFromUtf8(utf8Text, out
Rune
rune, out int bytesConsumed) != Buffers.OperationStatus.Done ||
1094
return
Rune
.UnsafeCreate((uint)utf32).ToString();
src\libraries\System.Private.CoreLib\src\System\CodeDom\Compiler\IndentedTextWriter.cs (11)
118
/// Writes out the specified <see cref="
Rune
"/>, inserting tabs at the start of every line.
120
/// <param name="value">The <see cref="
Rune
"/> to write.</param>
121
public override void Write(
Rune
value)
211
/// Asynchronously writes the specified <see cref="
Rune
"/> to the underlying <see cref="TextWriter"/>, inserting
214
/// <param name="value">The <see cref="
Rune
"/> to write.</param>
216
public override async Task WriteAsync(
Rune
value)
319
/// Writes out the specified <see cref="
Rune
"/>, followed by a line terminator, inserting tabs at the start of every line.
321
/// <param name="value">The <see cref="
Rune
"/> to write.</param>
322
public override void WriteLine(
Rune
value)
441
/// Asynchronously writes the specified <see cref="
Rune
"/> to the underlying <see cref="TextWriter"/> followed by a line terminator, inserting tabs
446
public override async Task WriteLineAsync(
Rune
value)
src\libraries\System.Private.CoreLib\src\System\Globalization\CharUnicodeInfo.cs (1)
196
internal static GraphemeClusterBreakType GetGraphemeClusterBreakType(
Rune
rune)
src\libraries\System.Private.CoreLib\src\System\Globalization\CompareInfo.cs (11)
155
/// Indicates whether a specified <see cref="
Rune
"/> is sortable.
162
public static bool IsSortable(
Rune
value)
164
Span<char> valueAsUtf16 = stackalloc char[
Rune
.MaxUtf16CharsPerRune];
1022
/// Searches for the first occurrence of a <see cref="
Rune
"/> within a source string.
1025
/// <param name="value">The <see cref="
Rune
"/> to locate within <paramref name="source"/>.</param>
1034
public int IndexOf(ReadOnlySpan<char> source,
Rune
value, CompareOptions options = CompareOptions.None)
1036
Span<char> valueAsUtf16 = stackalloc char[
Rune
.MaxUtf16CharsPerRune];
1394
/// Searches for the last occurrence of a <see cref="
Rune
"/> within a source string.
1397
/// <param name="value">The <see cref="
Rune
"/> to locate within <paramref name="source"/>.</param>
1406
public unsafe int LastIndexOf(ReadOnlySpan<char> source,
Rune
value, CompareOptions options = CompareOptions.None)
1408
Span<char> valueAsUtf16 = stackalloc char[
Rune
.MaxUtf16CharsPerRune];
src\libraries\System.Private.CoreLib\src\System\Globalization\CompareInfo.Icu.cs (3)
827
if (
Rune
.DecodeFromUtf16(text, out
Rune
result, out int charsConsumed) != OperationStatus.Done)
832
UnicodeCategory category =
Rune
.GetUnicodeCategory(result);
src\libraries\System.Private.CoreLib\src\System\Globalization\DateTimeFormat.cs (1)
756
var
r = new Rune(ch);
src\libraries\System.Private.CoreLib\src\System\Globalization\HebrewNumber.cs (2)
214
Rune
.DecodeLastFromUtf8(MemoryMarshal.AsBytes(outputBuffer.AsSpan()), out
Rune
value, out int bytesConsumed);
src\libraries\System.Private.CoreLib\src\System\Globalization\Ordinal.Utf8.cs (12)
66
OperationStatus statusA =
Rune
.DecodeFromUtf8(spanA, out
Rune
runeA, out int bytesConsumedA);
67
OperationStatus statusB =
Rune
.DecodeFromUtf8(spanB, out
Rune
runeB, out int bytesConsumedB);
77
if (
Rune
.ToUpperInvariant(runeA) !=
Rune
.ToUpperInvariant(runeB))
376
OperationStatus statusA =
Rune
.DecodeFromUtf8(spanA, out
Rune
runeA, out int bytesConsumedA);
377
OperationStatus statusB =
Rune
.DecodeFromUtf8(spanB, out
Rune
runeB, out int bytesConsumedB);
387
if (
Rune
.ToUpperInvariant(runeA) !=
Rune
.ToUpperInvariant(runeB))
src\libraries\System.Private.CoreLib\src\System\Globalization\TextInfo.cs (6)
505
public
Rune
ToLower(
Rune
value)
508
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
527
public
Rune
ToUpper(
Rune
value)
530
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
src\libraries\System.Private.CoreLib\src\System\Guid.cs (6)
942
if (
Rune
.DecodeFromUtf8(srcUtf8Span.Slice(i), out
Rune
current, out int bytesConsumed) != Buffers.OperationStatus.Done)
948
if (!
Rune
.IsWhiteSpace(current))
973
if (
Rune
.DecodeFromUtf8(srcUtf8Span.Slice(i), out
Rune
current, out int bytesConsumed) != Buffers.OperationStatus.Done)
979
if (!
Rune
.IsWhiteSpace(current))
src\libraries\System.Private.CoreLib\src\System\IO\BinaryWriter.cs (2)
179
if (!
Rune
.TryCreate(ch, out
Rune
rune)) // optimistically assume UTF-8 code path (which uses Rune) will be hit
src\libraries\System.Private.CoreLib\src\System\IO\TextWriter.CreateBroadcasting.cs (4)
135
public override void Write(
Rune
value)
303
public override void WriteLine(
Rune
value)
471
public override async Task WriteAsync(
Rune
value)
519
public override async Task WriteLineAsync(
Rune
value)
src\libraries\System.Private.CoreLib\src\System\IO\TextWriter.cs (16)
145
public virtual void Write(
Rune
value)
148
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
380
public virtual void WriteLine(
Rune
value)
383
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
600
public virtual Task WriteAsync(
Rune
value)
602
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
694
public virtual Task WriteLineAsync(
Rune
value)
696
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
825
public override void Write(
Rune
value) { }
846
public override Task WriteAsync(
Rune
value) => Task.CompletedTask;
853
public override void WriteLine(
Rune
value) { }
874
public override Task WriteLineAsync(
Rune
value) => Task.CompletedTask;
931
public override void Write(
Rune
value) => _out.Write(value);
997
public override void WriteLine(
Rune
value) => _out.WriteLine(value);
1075
public override Task WriteAsync(
Rune
value)
1139
public override Task WriteLineAsync(
Rune
value)
src\libraries\System.Private.CoreLib\src\System\MemoryExtensions.Globalization.cs (4)
365
/// Returns an enumeration of <see cref="
Rune
"/> from the provided span.
368
/// Invalid sequences will be represented in the enumeration by <see cref="
Rune
.ReplacementChar"/>.
376
/// Returns an enumeration of <see cref="
Rune
"/> from the provided span.
379
/// Invalid sequences will be represented in the enumeration by <see cref="
Rune
.ReplacementChar"/>.
src\libraries\System.Private.CoreLib\src\System\MemoryExtensions.Trim.Utf8.cs (14)
20
Debug.Assert(!
Rune
.IsWhiteSpace(
Rune
.ReplacementChar));
27
_ =
Rune
.DecodeFromUtf8(span, out
Rune
first, out int firstBytesConsumed);
29
if (
Rune
.IsWhiteSpace(first))
35
_ =
Rune
.DecodeLastFromUtf8(span, out
Rune
last, out int lastBytesConsumed);
37
if (
Rune
.IsWhiteSpace(last))
50
_ =
Rune
.DecodeFromUtf8(span, out
Rune
current, out int bytesConsumed);
52
if (!
Rune
.IsWhiteSpace(current))
62
_ =
Rune
.DecodeLastFromUtf8(span, out
Rune
current, out int bytesConsumed);
64
if (!
Rune
.IsWhiteSpace(current))
src\libraries\System.Private.CoreLib\src\System\Net\WebUtility.cs (2)
119
Rune
.TryCreate(ch, input[i + 1], out
Rune
rune))
src\libraries\System.Private.CoreLib\src\System\Reflection\AssemblyName.cs (3)
335
if (
Rune
.DecodeFromUtf16(stringToEscape, out
Rune
r, out int charsConsumed) != OperationStatus.Done)
337
r =
Rune
.ReplacementChar;
src\libraries\System.Private.CoreLib\src\System\String.Comparison.cs (6)
524
public bool EndsWith(
Rune
value)
535
public bool EndsWith(
Rune
value, StringComparison comparisonType)
538
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
1135
public bool StartsWith(
Rune
value)
1146
public bool StartsWith(
Rune
value, StringComparison comparisonType)
1149
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
src\libraries\System.Private.CoreLib\src\System\String.cs (2)
605
/// Returns an enumeration of <see cref="
Rune
"/> from this string.
608
/// Invalid sequences will be represented in the enumeration by <see cref="
Rune
.ReplacementChar"/>.
src\libraries\System.Private.CoreLib\src\System\String.Manipulation.cs (13)
1455
public string Replace(
Rune
oldRune,
Rune
newRune)
1462
ReadOnlySpan<char> oldChars = oldRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
1463
ReadOnlySpan<char> newChars = newRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
1671
public string[] Split(
Rune
separator, StringSplitOptions options = StringSplitOptions.None)
1683
public string[] Split(
Rune
separator, int count, StringSplitOptions options = StringSplitOptions.None)
1685
ReadOnlySpan<char> separatorSpan = separator.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2412
public string Trim(
Rune
trimRune)
2420
ReadOnlySpan<char> trimChars = trimRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2498
public string TrimStart(
Rune
trimRune)
2506
ReadOnlySpan<char> trimChars = trimRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2572
public string TrimEnd(
Rune
trimRune)
2580
ReadOnlySpan<char> trimChars = trimRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
src\libraries\System.Private.CoreLib\src\System\String.Searching.cs (16)
53
public bool Contains(
Rune
value)
64
public bool Contains(
Rune
value, StringComparison comparisonType)
346
public int IndexOf(
Rune
value)
361
public int IndexOf(
Rune
value, int startIndex)
378
public int IndexOf(
Rune
value, int startIndex, int count)
393
public int IndexOf(
Rune
value, StringComparison comparisonType)
410
public int IndexOf(
Rune
value, int startIndex, StringComparison comparisonType)
428
public int IndexOf(
Rune
value, int startIndex, int count, StringComparison comparisonType)
435
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
675
public int LastIndexOf(
Rune
value)
690
public int LastIndexOf(
Rune
value, int startIndex)
707
public int LastIndexOf(
Rune
value, int startIndex, int count)
722
public int LastIndexOf(
Rune
value, StringComparison comparisonType)
739
public int LastIndexOf(
Rune
value, int startIndex, StringComparison comparisonType)
757
public int LastIndexOf(
Rune
value, int startIndex, int count, StringComparison comparisonType)
770
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
src\libraries\System.Private.CoreLib\src\System\Text\ASCIIEncoding.cs (5)
764
internal sealed override bool TryGetByteCount(
Rune
value, out int byteCount)
778
internal sealed override OperationStatus EncodeRune(
Rune
value, Span<byte> bytes, out int bytesWritten)
801
internal sealed override OperationStatus DecodeFirstRune(ReadOnlySpan<byte> bytes, out
Rune
value, out int bytesConsumed)
818
value =
Rune
.ReplacementChar;
827
value =
Rune
.ReplacementChar;
src\libraries\System.Private.CoreLib\src\System\Text\DecoderFallback.cs (6)
231
private
Rune
GetNextRune()
239
if (!
Rune
.TryCreate(ch, out
Rune
rune) && !
Rune
.TryCreate(ch, GetNextChar(), out rune))
251
Rune
thisRune;
271
Rune
thisRune;
src\libraries\System.Private.CoreLib\src\System\Text\DecoderNLS.cs (2)
238
switch (_encoding.DecodeFirstRune(combinedBuffer, out
Rune
value, out int combinedBufferBytesConsumed))
296
switch (_encoding.DecodeFirstRune(combinedBuffer, out
Rune
value, out int combinedBufferBytesConsumed))
src\libraries\System.Private.CoreLib\src\System\Text\EncoderFallback.cs (6)
198
Rune
thisRune;
248
Rune
thisRune;
277
private
Rune
GetNextRune()
280
if (
Rune
.TryCreate(firstChar, out
Rune
value) ||
Rune
.TryCreate(firstChar, GetNextChar(), out value))
src\libraries\System.Private.CoreLib\src\System\Text\EncoderNLS.cs (4)
280
if (
Rune
.TryCreate(_charLeftOver, secondChar, out
Rune
rune))
355
if (
Rune
.TryCreate(charLeftOver, secondChar, out
Rune
rune))
src\libraries\System.Private.CoreLib\src\System\Text\Encoding.Internal.cs (10)
73
internal virtual OperationStatus DecodeFirstRune(ReadOnlySpan<byte> bytes, out
Rune
value, out int bytesConsumed)
79
internal virtual OperationStatus EncodeRune(
Rune
value, Span<byte> bytes, out int bytesWritten)
95
/// Given a <see cref="
Rune
"/>, determines its byte count under the current <see cref="Encoding"/>.
96
/// Returns <see langword="false"/> if the <see cref="
Rune
"/> cannot be represented in the
99
internal virtual bool TryGetByteCount(
Rune
value, out int byteCount)
328
if (
Rune
.DecodeFromUtf16(chars, out
Rune
firstScalarValue, out int charsConsumedThisIteration) == OperationStatus.NeedMoreData
605
switch (
Rune
.DecodeFromUtf16(chars, out
Rune
firstScalarValue, out int charsConsumedThisIteration))
927
if (DecodeFirstRune(bytes, out
Rune
firstScalarValue, out int bytesConsumedThisIteration) == OperationStatus.NeedMoreData
src\libraries\System.Private.CoreLib\src\System\Text\Latin1Encoding.cs (4)
642
internal sealed override bool TryGetByteCount(
Rune
value, out int byteCount)
659
internal sealed override OperationStatus EncodeRune(
Rune
value, Span<byte> bytes, out int bytesWritten)
685
internal sealed override OperationStatus DecodeFirstRune(ReadOnlySpan<byte> bytes, out
Rune
value, out int bytesConsumed)
698
value =
Rune
.ReplacementChar;
src\libraries\System.Private.CoreLib\src\System\Text\Rune.cs (95)
22
/// assuming that the underlying <see cref="
Rune
"/> instance is well-formed.
30
readonly struct Rune : IComparable, IComparable<
Rune
>, IEquatable<
Rune
>
35
, IUtf8SpanParsable<
Rune
>
70
/// Creates a <see cref="
Rune
"/> from the provided UTF-16 code unit.
87
/// Creates a <see cref="
Rune
"/> from the provided UTF-16 surrogate pair.
99
/// Creates a <see cref="
Rune
"/> from the provided Unicode scalar value.
110
/// Creates a <see cref="
Rune
"/> from the provided Unicode scalar value.
132
public static bool operator ==(
Rune
left,
Rune
right) => left._value == right._value;
134
public static bool operator !=(
Rune
left,
Rune
right) => left._value != right._value;
136
public static bool operator <(
Rune
left,
Rune
right) => left._value < right._value;
138
public static bool operator <=(
Rune
left,
Rune
right) => left._value <= right._value;
140
public static bool operator >(
Rune
left,
Rune
right) => left._value > right._value;
142
public static bool operator >=(
Rune
left,
Rune
right) => left._value >= right._value;
146
public static explicit operator
Rune
(char ch) => new Rune(ch);
149
public static explicit operator
Rune
(uint value) => new Rune(value);
151
public static explicit operator
Rune
(int value) => new Rune(value);
181
/// A <see cref="
Rune
"/> instance that represents the Unicode replacement character U+FFFD.
183
public static
Rune
ReplacementChar => UnsafeCreate(UnicodeUtility.ReplacementChar);
225
private static
Rune
ChangeCaseCultureAware(
Rune
rune, TextInfo textInfo, bool toUpper)
295
public int CompareTo(
Rune
other) => this.Value - other.Value; // values don't span entire 32-bit domain; won't integer overflow
305
/// Decodes the <see cref="
Rune
"/> at the beginning of the provided UTF-16 source buffer.
310
/// and outs via <paramref name="result"/> the decoded <see cref="
Rune
"/> and via <paramref name="charsConsumed"/> the
311
/// number of <see langword="char"/>s used in the input buffer to encode the <see cref="
Rune
"/>.
330
public static OperationStatus DecodeFromUtf16(ReadOnlySpan<char> source, out
Rune
result, out int charsConsumed)
389
/// Decodes the <see cref="
Rune
"/> at the beginning of the provided UTF-8 source buffer.
394
/// and outs via <paramref name="result"/> the decoded <see cref="
Rune
"/> and via <paramref name="bytesConsumed"/> the
395
/// number of <see langword="byte"/>s used in the input buffer to encode the <see cref="
Rune
"/>.
414
public static OperationStatus DecodeFromUtf8(ReadOnlySpan<byte> source, out
Rune
result, out int bytesConsumed)
574
/// Decodes the <see cref="
Rune
"/> at the end of the provided UTF-16 source buffer.
577
/// This method is very similar to <see cref="DecodeFromUtf16(ReadOnlySpan{char}, out
Rune
, out int)"/>, but it allows
582
public static OperationStatus DecodeLastFromUtf16(ReadOnlySpan<char> source, out
Rune
result, out int charsConsumed)
634
/// Decodes the <see cref="
Rune
"/> at the end of the provided UTF-8 source buffer.
637
/// This method is very similar to <see cref="DecodeFromUtf8(ReadOnlySpan{byte}, out
Rune
, out int)"/>, but it allows
642
public static OperationStatus DecodeLastFromUtf8(ReadOnlySpan<byte> source, out
Rune
value, out int bytesConsumed)
719
OperationStatus operationStatus = DecodeFromUtf8(source, out
Rune
tempRune, out int tempBytesConsumed);
751
/// Encodes this <see cref="
Rune
"/> to a UTF-16 destination buffer.
769
/// Encodes this <see cref="
Rune
"/> to a UTF-8 destination buffer.
786
public override bool Equals([NotNullWhen(true)] object? obj) => (obj is
Rune
other) && Equals(other);
788
public bool Equals(
Rune
other) => this == other;
796
public bool Equals(
Rune
other, StringComparison comparisonType)
817
/// Gets the <see cref="
Rune
"/> which begins at index <paramref name="index"/> in
824
public static
Rune
GetRuneAt(string input, int index)
937
/// Returns a <see cref="string"/> representation of this <see cref="
Rune
"/> instance.
973
static bool IUtf8SpanParsable<
Rune
>.TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out
Rune
result)
989
static
Rune
IUtf8SpanParsable<
Rune
>.Parse(ReadOnlySpan<byte> utf8Text, System.IFormatProvider? provider)
991
if (DecodeFromUtf8(utf8Text, out
Rune
result, out int bytesConsumed) != OperationStatus.Done || bytesConsumed != utf8Text.Length)
1003
/// Attempts to create a <see cref="
Rune
"/> from the provided input value.
1005
public static bool TryCreate(char ch, out
Rune
result)
1021
/// Attempts to create a <see cref="
Rune
"/> from the provided UTF-16 surrogate pair.
1024
public static bool TryCreate(char highSurrogate, char lowSurrogate, out
Rune
result)
1051
/// Attempts to create a <see cref="
Rune
"/> from the provided input value.
1053
public static bool TryCreate(int value, out
Rune
result) => TryCreate((uint)value, out result);
1056
/// Attempts to create a <see cref="
Rune
"/> from the provided input value.
1059
public static bool TryCreate(uint value, out
Rune
result)
1074
/// Encodes this <see cref="
Rune
"/> to a UTF-16 destination buffer.
1093
private static bool TryEncodeToUtf16(
Rune
value, Span<char> destination, out int charsWritten)
1118
/// Encodes this <see cref="
Rune
"/> to a destination buffer as UTF-8 bytes.
1137
private static bool TryEncodeToUtf8(
Rune
value, Span<byte> destination, out int bytesWritten)
1195
/// Attempts to get the <see cref="
Rune
"/> which begins at index <paramref name="index"/> in
1203
public static bool TryGetRuneAt(string input, int index, out
Rune
value)
1235
/// Creates a <see cref="
Rune
"/> without performing validation on the input.
1238
internal static
Rune
UnsafeCreate(uint scalarValue) => new Rune(scalarValue, false);
1242
public static double GetNumericValue(
Rune
value)
1264
public static UnicodeCategory GetUnicodeCategory(
Rune
value)
1276
private static UnicodeCategory GetUnicodeCategoryNonAscii(
Rune
value)
1327
public static bool IsControl(
Rune
value)
1341
public static bool IsDigit(
Rune
value)
1353
public static bool IsLetter(
Rune
value)
1365
public static bool IsLetterOrDigit(
Rune
value)
1377
public static bool IsLower(
Rune
value)
1389
public static bool IsNumber(
Rune
value)
1401
public static bool IsPunctuation(
Rune
value)
1406
public static bool IsSeparator(
Rune
value)
1411
public static bool IsSymbol(
Rune
value)
1416
public static bool IsUpper(
Rune
value)
1428
public static bool IsWhiteSpace(
Rune
value)
1446
public static
Rune
ToLower(
Rune
value, CultureInfo culture)
1469
public static
Rune
ToLowerInvariant(
Rune
value)
1495
public static
Rune
ToUpper(
Rune
value, CultureInfo culture)
1518
public static
Rune
ToUpperInvariant(
Rune
value)
1552
if (obj is
Rune
other)
src\libraries\System.Private.CoreLib\src\System\Text\RunePosition.cs (17)
15
/// Invalid Unicode symbols will be represented by the <see cref="System.Text.
Rune
.ReplacementChar"/> value.
28
/// Invalid Unicode symbols will be represented by <see cref="System.Text.
Rune
.ReplacementChar"/>
42
/// Invalid Unicode symbols will be represented by <see cref="
Rune
.ReplacementChar"/> value.
47
/// Unicode scalar value <see cref="System.Text.
Rune
"/> of the current symbol in Unicode data.
48
/// Invalid Unicode symbols will be represented by <see cref="System.Text.
Rune
.ReplacementChar"/> value.
50
public
Rune
Rune { get; }
67
/// replaced by <see cref="System.Text.
Rune
.ReplacementChar"/> value.
78
public RunePosition(
Rune
rune, int startIndex, int length, bool wasReplaced)
85
if ((uint)length >
Rune
.MaxUtf8BytesPerRune)
131
public void Deconstruct(out
Rune
rune, out int startIndex)
144
public void Deconstruct(out
Rune
rune, out int startIndex, out int length)
223
int scalarValue =
Rune
.ReadFirstRuneFromUtf16Buffer(_remaining);
226
Rune
rune =
Rune
.UnsafeCreate((uint)scalarValue);
233
Current = new RunePosition(
Rune
.ReplacementChar, Current.StartIndex + Current.Length, 1, true);
301
bool wasReplaced =
Rune
.DecodeFromUtf8(_remaining, out
Rune
rune, out int charsConsumed) != OperationStatus.Done;
src\libraries\System.Private.CoreLib\src\System\Text\SpanRuneEnumerator.cs (6)
12
public ref struct SpanRuneEnumerator : IEnumerator<
Rune
>
15
private
Rune
_current;
23
public
Rune
Current => _current;
36
int scalarValue =
Rune
.ReadFirstRuneFromUtf16Buffer(_remaining);
40
scalarValue =
Rune
.ReplacementChar.Value;
49
_current =
Rune
.UnsafeCreate((uint)scalarValue);
src\libraries\System.Private.CoreLib\src\System\Text\StringBuilder.cs (20)
651
/// Returns an enumeration of <see cref="
Rune
"/> from this builder.
654
/// Invalid sequences will be represented in the enumeration by <see cref="
Rune
.ReplacementChar"/>.
1041
/// Appends the string representation of a specified <see cref="
Rune
"/> to this instance.
1045
public StringBuilder Append(
Rune
value)
1048
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
1360
public StringBuilder Insert(int index,
Rune
value)
1363
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2292
public StringBuilder Replace(
Rune
oldRune,
Rune
newRune)
2308
public StringBuilder Replace(
Rune
oldRune,
Rune
newRune, int startIndex, int count)
2311
ReadOnlySpan<char> oldChars = oldRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2314
ReadOnlySpan<char> newChars = newRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2871
/// Gets the <see cref="
Rune
"/> that begins at a specified position in this builder.
2877
public
Rune
GetRuneAt(int index)
2879
if (TryGetRuneAt(index, out
Rune
value))
2888
/// Attempts to get the <see cref="
Rune
"/> that begins at a specified position in this builder, and return a value that indicates whether the operation succeeded.
2897
public bool TryGetRuneAt(int index, out
Rune
value)
2907
OperationStatus status =
Rune
.DecodeFromUtf16(chars, out
Rune
result, out _);
src\libraries\System.Private.CoreLib\src\System\Text\StringBuilderRuneEnumerator.cs (11)
10
/// An enumerator for retrieving <see cref="
Rune
"/> instances from a <see cref="StringBuilder"/>.
12
public struct StringBuilderRuneEnumerator : IEnumerable<
Rune
>, IEnumerator<
Rune
>
15
private
Rune
_current;
26
/// Gets the <see cref="
Rune
"/> at the current position of the enumerator.
28
public readonly
Rune
Current => _current;
37
/// Advances the enumerator to the next <see cref="
Rune
"/> of the builder.
55
_current =
Rune
.ReplacementChar;
69
/// Gets the <see cref="
Rune
"/> at the current position of the enumerator.
94
readonly IEnumerator<
Rune
> IEnumerable<
Rune
>.GetEnumerator() => this;
src\libraries\System.Private.CoreLib\src\System\Text\StringRuneEnumerator.cs (8)
10
public struct StringRuneEnumerator : IEnumerable<
Rune
>, IEnumerator<
Rune
>
13
private
Rune
_current;
23
public
Rune
Current => _current;
36
if (!
Rune
.TryGetRuneAt(_string, _nextIndex, out _current))
39
_current =
Rune
.ReplacementChar;
61
IEnumerator<
Rune
> IEnumerable<
Rune
>.GetEnumerator() => this;
src\libraries\System.Private.CoreLib\src\System\Text\Unicode\TextSegmentationUtility.cs (3)
19
private delegate OperationStatus DecodeFirstRune<T>(ReadOnlySpan<T> input, out
Rune
rune, out int elementsConsumed);
21
private static readonly DecodeFirstRune<char> _utf16Decoder =
Rune
.DecodeFromUtf16;
229
_decoder(_buffer.Slice(CurrentCodeUnitOffset), out
Rune
thisRune, out _codeUnitLengthOfCurrentScalar);
src\libraries\System.Private.CoreLib\src\System\Text\Unicode\Utf8.cs (2)
201
Rune
.DecodeFromUtf8(source, out _, out int bytesConsumedJustNow);
287
Rune
.DecodeFromUtf8(source, out _, out int bytesConsumedJustNow);
src\libraries\System.Private.CoreLib\src\System\Text\UTF8Encoding.cs (4)
769
internal sealed override bool TryGetByteCount(
Rune
value, out int byteCount)
777
internal sealed override OperationStatus EncodeRune(
Rune
value, Span<byte> bytes, out int bytesWritten)
785
internal sealed override OperationStatus DecodeFirstRune(ReadOnlySpan<byte> bytes, out
Rune
value, out int bytesConsumed)
787
return
Rune
.DecodeFromUtf8(bytes, out value, out bytesConsumed);
src\libraries\System.Private.CoreLib\src\System\Text\UTF8Encoding.Sealed.cs (1)
14
/// perform <see cref="
Rune
.ReplacementChar"/> substitution instead" semantics. This type allows for devirtualization
System.Private.Uri (12)
System\IriHelper.cs (5)
34
if (
Rune
.TryCreate(highSurr, lowSurr, out
Rune
rune))
148
Rune
rune;
153
else if (!
Rune
.TryCreate(ch, out rune))
155
rune =
Rune
.ReplacementChar;
System\PercentEncodingHelper.cs (2)
87
if (
Rune
.DecodeFromUtf8(MemoryMarshal.AsBytes(new ReadOnlySpan<uint>(ref temp))[..bytesLeftInBuffer], out
Rune
rune, out bytesConsumed) == OperationStatus.Done)
System\UriHelper.cs (3)
264
if (
Rune
.DecodeFromUtf16(stringToEscape, out
Rune
r, out int charsConsumed) != OperationStatus.Done)
266
r =
Rune
.ReplacementChar;
System\ValueStringBuilderExtensions.cs (2)
11
public void Append(
Rune
rune)
36
private void GrowAndAppend(
Rune
rune)
System.Runtime (1)
artifacts\obj\System.Runtime\Debug\net11.0\System.Runtime.Forwards.cs (1)
807
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Text.
Rune
))]
System.Runtime.Numerics (8)
src\libraries\Common\src\System\Number.Formatting.Common.cs (1)
879
var
r = new Rune(ch);
System\Number.Polyfill.cs (5)
94
if (DecodeFromUtfChar(span, out
Rune
rune, out elemsConsumed) != OperationStatus.Done)
99
if (!
Rune
.IsWhiteSpace(rune))
108
internal static OperationStatus DecodeFromUtfChar<TChar>(ReadOnlySpan<TChar> span, out
Rune
result, out int elemsConsumed)
112
?
Rune
.DecodeFromUtf8(Unsafe.BitCast<ReadOnlySpan<TChar>, ReadOnlySpan<byte>>(span), out result, out elemsConsumed)
113
:
Rune
.DecodeFromUtf16(Unsafe.BitCast<ReadOnlySpan<TChar>, ReadOnlySpan<char>>(span), out result, out elemsConsumed);
System\Numerics\Complex.cs (2)
2178
if (Number.DecodeFromUtfChar(text[(semicolon + 1)..], out
Rune
rune, out int elemsConsumed) == OperationStatus.Done)
2180
if (
Rune
.IsWhiteSpace(rune))
System.Text.Encodings.Web (33)
System\Text\Encodings\Web\AsciiByteMap.cs (1)
34
internal readonly bool TryLookup(
Rune
key, out byte value)
System\Text\Encodings\Web\DefaultHtmlEncoder.cs (2)
67
internal override int EncodeUtf8(
Rune
value, Span<byte> destination)
133
internal override int EncodeUtf16(
Rune
value, Span<char> destination)
System\Text\Encodings\Web\DefaultJavaScriptEncoder.cs (4)
113
internal override int EncodeUtf8(
Rune
value, Span<byte> destination)
129
static int TryEncodeScalarAsHex(object @this,
Rune
value, Span<byte> destination)
164
internal override int EncodeUtf16(
Rune
value, Span<char> destination)
180
static int TryEncodeScalarAsHex(object @this,
Rune
value, Span<char> destination)
System\Text\Encodings\Web\DefaultUrlEncoder.cs (2)
142
internal override int EncodeUtf8(
Rune
value, Span<byte> destination)
171
internal override int EncodeUtf16(
Rune
value, Span<char> destination)
System\Text\Encodings\Web\OptimizedInboxTextEncoder.Ascii.cs (2)
36
Rune
rune = new Rune(i); // guaranteed to succeed
37
if (!
Rune
.IsControl(rune) && allowedCodePointsBmp.IsCharAllowed((char)i))
System\Text\Encodings\Web\OptimizedInboxTextEncoder.cs (10)
187
if (!
Rune
.TryCreate(thisChar, out
Rune
scalarValue))
192
if (
Rune
.TryCreate(thisChar, source[srcIdxTemp], out scalarValue))
202
scalarValue =
Rune
.ReplacementChar; // fallback char
304
OperationStatus runeDecodeStatus =
Rune
.DecodeFromUtf8(source.Slice(srcIdx), out
Rune
scalarValue, out int bytesConsumedJustNow);
312
Debug.Assert(scalarValue ==
Rune
.ReplacementChar); // DecodeFromUtfXX should've set replacement character on failure
383
OperationStatus opStatus =
Rune
.DecodeFromUtf8(data, out
Rune
scalarValue, out int bytesConsumed);
468
public bool IsScalarValueAllowed(
Rune
value)
System\Text\Encodings\Web\ScalarEscaperBase.cs (2)
11
internal abstract int EncodeUtf16(
Rune
value, Span<char> destination);
12
internal abstract int EncodeUtf8(
Rune
value, Span<byte> destination);
System\Text\Encodings\Web\TextEncoder.cs (10)
67
if (
Rune
.DecodeFromUtf16(utf16ScratchBuffer, out
Rune
nextScalarValue, out int scalarUtf16CodeUnitCount) != OperationStatus.Done)
337
OperationStatus opStatus =
Rune
.DecodeFromUtf8(utf8Source, out
Rune
scalarValue, out int bytesConsumedJustNow);
345
Debug.Assert(scalarValue ==
Rune
.ReplacementChar); // DecodeFromUtf8 should've performed substitution
459
OperationStatus status =
Rune
.DecodeFromUtf16(source, out
Rune
scalarValue, out int charsConsumedJustNow);
467
Debug.Assert(scalarValue ==
Rune
.ReplacementChar); // should be replacement char
565
OperationStatus opStatus =
Rune
.DecodeFromUtf8(utf8Text, out
Rune
scalarValue, out int bytesConsumed);
System.Text.Json (3)
System\Text\Json\Reader\JsonReaderHelper.Unescaping.cs (1)
487
var
rune = new Rune(scalar);
System\Text\Json\Writer\Utf8JsonWriter.WriteValues.StringSegment.cs (2)
74
switch (
Rune
.DecodeFromUtf16(combinedBuffer, out _, out int charsConsumed))
242
switch (
Rune
.DecodeFromUtf8(combinedBuffer, out _, out int bytesConsumed))
System.Web.HttpUtility (2)
System\Web\Util\HttpEncoder.cs (2)
691
chars[i] = (char)
Rune
.ReplacementChar.Value;
701
chars[i] = (char)
Rune
.ReplacementChar.Value;