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\runtime\src\libraries\Common\src\System\Number.Formatting.Common.cs (1)
887
var r = new
Rune
(ch);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Char.cs (1)
212
new
Rune
(this).TryEncodeToUtf8(utf8Destination, out bytesWritten);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\DateTimeFormat.cs (1)
756
var r = new
Rune
(ch);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\TextInfo.cs (4)
535
return new
Rune
(lowerChars[0], lowerChars[1]);
539
return new
Rune
(lowerChar);
557
return new
Rune
(upperChars[0], upperChars[1]);
561
return new
Rune
(upperChar);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\ASCIIEncoding.cs (1)
811
value = new
Rune
(b);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Latin1Encoding.cs (1)
692
value = new
Rune
(b);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Rune.cs (4)
148
public static explicit operator Rune(char ch) => new
Rune
(ch);
151
public static explicit operator Rune(uint value) => new
Rune
(value);
153
public static explicit operator Rune(int value) => new
Rune
(value);
1288
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\runtime\src\libraries\Common\src\System\Number.Formatting.Common.cs (1)
887
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)
46
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);
451 references to Rune
aspire (1)
Utils\EmojiWidth.cs (1)
43
var
rune = enumerator.Current;
Microsoft.AspNetCore.Components (2)
src\aspnetcore\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\aspnetcore\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\aspnetcore\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\aspnetcore\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\roslyn\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\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\EmbeddedLanguages\VirtualChars\RuneExtensions.cs (1)
15
public static bool TryGetEscapeCharacter(this
Rune
rune, out char escapedChar)
Microsoft.CodeAnalysis.Features.ExternalAccess (1)
AspNetCore\EmbeddedLanguages\AspNetCoreVirtualChar.cs (1)
28
get => char.IsSurrogate(VirtualChar) ?
Rune
.ReplacementChar.Value : VirtualChar;
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)
644
Rune
.DecodeFromUtf16(remaining.Slice(i), out
Rune
rune, out var runeLength);
659
private static void EncodeToUtf8Hex(
Rune
rune, StringBuilder builder)
Microsoft.TemplateEngine.Cli (1)
src\sdk\artifacts\obj\Microsoft.TemplateEngine.Cli\External\Wcwidth\UnicodeCalculator.cs (1)
136
public static int GetWidth(
Rune
value, Unicode? version = null)
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)
992
foreach (
Rune
rune in text.EnumerateRunes())
System.Private.CoreLib (365)
src\runtime\src\libraries\Common\src\System\Number.Formatting.Common.cs (1)
887
var
r = new Rune(ch);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Char.cs (7)
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 ||
1109
return
Rune
.UnsafeCreate((uint)utf32).ToString();
2003
if (
Rune
.DecodeFromUtf8(utf8Text, out
Rune
rune, out bytesConsumed) != Buffers.OperationStatus.Done ||
src\runtime\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\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CharUnicodeInfo.cs (1)
196
internal static GraphemeClusterBreakType GetGraphemeClusterBreakType(
Rune
rune)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CompareInfo.cs (11)
155
/// Indicates whether a specified <see cref="
Rune
"/> is sortable.
162
public static unsafe 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 unsafe 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\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\CompareInfo.Icu.cs (3)
828
if (
Rune
.DecodeFromUtf16(text, out
Rune
result, out int charsConsumed) != OperationStatus.Done)
833
UnicodeCategory category =
Rune
.GetUnicodeCategory(result);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\DateTimeFormat.cs (1)
756
var
r = new Rune(ch);
src\runtime\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\runtime\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\runtime\src\libraries\System.Private.CoreLib\src\System\Globalization\TextInfo.cs (6)
525
public unsafe
Rune
ToLower(
Rune
value)
528
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
547
public unsafe
Rune
ToUpper(
Rune
value)
550
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
src\runtime\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\runtime\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\runtime\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\runtime\src\libraries\System.Private.CoreLib\src\System\IO\TextWriter.cs (16)
145
public virtual unsafe void Write(
Rune
value)
148
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
380
public virtual unsafe void WriteLine(
Rune
value)
383
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
600
public virtual unsafe Task WriteAsync(
Rune
value)
602
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
694
public virtual unsafe 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\runtime\src\libraries\System.Private.CoreLib\src\System\MemoryExtensions.Globalization.cs (4)
429
/// Returns an enumeration of <see cref="
Rune
"/> from the provided span.
432
/// Invalid sequences will be represented in the enumeration by <see cref="
Rune
.ReplacementChar"/>.
440
/// Returns an enumeration of <see cref="
Rune
"/> from the provided span.
443
/// Invalid sequences will be represented in the enumeration by <see cref="
Rune
.ReplacementChar"/>.
src\runtime\src\libraries\System.Private.CoreLib\src\System\MemoryExtensions.Trim.Utf8.cs (19)
18
Debug.Assert(!
Rune
.IsWhiteSpace(
Rune
.ReplacementChar));
22
_ =
Rune
.DecodeFromUtf8(span, out
Rune
current, out int bytesConsumed);
24
if (!
Rune
.IsWhiteSpace(current))
43
Debug.Assert(!
Rune
.IsWhiteSpace(
Rune
.ReplacementChar));
50
_ =
Rune
.DecodeFromUtf8(span, out
Rune
first, out int firstBytesConsumed);
52
if (
Rune
.IsWhiteSpace(first))
58
_ =
Rune
.DecodeLastFromUtf8(span, out
Rune
last, out int lastBytesConsumed);
60
if (
Rune
.IsWhiteSpace(last))
73
_ =
Rune
.DecodeFromUtf8(span, out
Rune
current, out int bytesConsumed);
75
if (!
Rune
.IsWhiteSpace(current))
85
_ =
Rune
.DecodeLastFromUtf8(span, out
Rune
current, out int bytesConsumed);
87
if (!
Rune
.IsWhiteSpace(current))
src\runtime\src\libraries\System.Private.CoreLib\src\System\Net\WebUtility.cs (2)
119
Rune
.TryCreate(ch, input[i + 1], out
Rune
rune))
src\runtime\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\runtime\src\libraries\System.Private.CoreLib\src\System\String.Comparison.cs (6)
524
public bool EndsWith(
Rune
value)
542
public unsafe bool EndsWith(
Rune
value, StringComparison comparisonType)
545
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
1142
public bool StartsWith(
Rune
value)
1160
public unsafe bool StartsWith(
Rune
value, StringComparison comparisonType)
1163
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
src\runtime\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\runtime\src\libraries\System.Private.CoreLib\src\System\String.Manipulation.cs (10)
1478
public unsafe string Replace(
Rune
oldRune,
Rune
newRune)
1485
ReadOnlySpan<char> oldChars = oldRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
1486
ReadOnlySpan<char> newChars = newRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
1694
public string[] Split(
Rune
separator, StringSplitOptions options = StringSplitOptions.None)
1706
public unsafe string[] Split(
Rune
separator, int count, StringSplitOptions options = StringSplitOptions.None)
1723
ReadOnlySpan<char> separatorSpan = separator.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2704
public unsafe string Trim(
Rune
trimRune)
2779
public unsafe string TrimStart(
Rune
trimRune)
2846
public unsafe string TrimEnd(
Rune
trimRune)
src\runtime\src\libraries\System.Private.CoreLib\src\System\String.Searching.cs (16)
53
public bool Contains(
Rune
value)
69
public bool Contains(
Rune
value, StringComparison comparisonType)
351
public int IndexOf(
Rune
value)
366
public int IndexOf(
Rune
value, int startIndex)
383
public int IndexOf(
Rune
value, int startIndex, int count)
398
public int IndexOf(
Rune
value, StringComparison comparisonType)
415
public int IndexOf(
Rune
value, int startIndex, StringComparison comparisonType)
433
public unsafe int IndexOf(
Rune
value, int startIndex, int count, StringComparison comparisonType)
441
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
681
public int LastIndexOf(
Rune
value)
696
public int LastIndexOf(
Rune
value, int startIndex)
713
public int LastIndexOf(
Rune
value, int startIndex, int count)
728
public int LastIndexOf(
Rune
value, StringComparison comparisonType)
745
public int LastIndexOf(
Rune
value, int startIndex, StringComparison comparisonType)
763
public unsafe int LastIndexOf(
Rune
value, int startIndex, int count, StringComparison comparisonType)
776
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\ASCIIEncoding.cs (5)
765
internal sealed override bool TryGetByteCount(
Rune
value, out int byteCount)
779
internal sealed override OperationStatus EncodeRune(
Rune
value, Span<byte> bytes, out int bytesWritten)
802
internal sealed override OperationStatus DecodeFirstRune(ReadOnlySpan<byte> bytes, out
Rune
value, out int bytesConsumed)
819
value =
Rune
.ReplacementChar;
828
value =
Rune
.ReplacementChar;
src\runtime\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\runtime\src\libraries\System.Private.CoreLib\src\System\Text\DecoderNLS.cs (2)
239
switch (_encoding.DecodeFirstRune(combinedBuffer, out
Rune
value, out int combinedBufferBytesConsumed))
297
switch (_encoding.DecodeFirstRune(combinedBuffer, out
Rune
value, out int combinedBufferBytesConsumed))
src\runtime\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\runtime\src\libraries\System.Private.CoreLib\src\System\Text\EncoderNLS.cs (4)
281
if (
Rune
.TryCreate(_charLeftOver, secondChar, out
Rune
rune))
356
if (
Rune
.TryCreate(charLeftOver, secondChar, out
Rune
rune))
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Encoding.Internal.cs (10)
74
internal virtual OperationStatus DecodeFirstRune(ReadOnlySpan<byte> bytes, out
Rune
value, out int bytesConsumed)
80
internal virtual OperationStatus EncodeRune(
Rune
value, Span<byte> bytes, out int bytesWritten)
96
/// Given a <see cref="
Rune
"/>, determines its byte count under the current <see cref="Encoding"/>.
97
/// Returns <see langword="false"/> if the <see cref="
Rune
"/> cannot be represented in the
100
internal virtual bool TryGetByteCount(
Rune
value, out int byteCount)
329
if (
Rune
.DecodeFromUtf16(chars, out
Rune
firstScalarValue, out int charsConsumedThisIteration) == OperationStatus.NeedMoreData
606
switch (
Rune
.DecodeFromUtf16(chars, out
Rune
firstScalarValue, out int charsConsumedThisIteration))
928
if (DecodeFirstRune(bytes, out
Rune
firstScalarValue, out int bytesConsumedThisIteration) == OperationStatus.NeedMoreData
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Latin1Encoding.cs (4)
643
internal sealed override bool TryGetByteCount(
Rune
value, out int byteCount)
660
internal sealed override OperationStatus EncodeRune(
Rune
value, Span<byte> bytes, out int bytesWritten)
686
internal sealed override OperationStatus DecodeFirstRune(ReadOnlySpan<byte> bytes, out
Rune
value, out int bytesConsumed)
699
value =
Rune
.ReplacementChar;
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Rune.cs (111)
22
/// assuming that the underlying <see cref="
Rune
"/> instance is well-formed.
30
readonly struct Rune : IComparable, IComparable<
Rune
>, IEquatable<
Rune
>
35
, IParsable<
Rune
>
36
, ISpanParsable<
Rune
>
37
, IUtf8SpanParsable<
Rune
>
72
/// Creates a <see cref="
Rune
"/> from the provided UTF-16 code unit.
89
/// Creates a <see cref="
Rune
"/> from the provided UTF-16 surrogate pair.
101
/// Creates a <see cref="
Rune
"/> from the provided Unicode scalar value.
112
/// Creates a <see cref="
Rune
"/> from the provided Unicode scalar 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;
144
public static bool operator >=(
Rune
left,
Rune
right) => left._value >= right._value;
148
public static explicit operator
Rune
(char ch) => new Rune(ch);
151
public static explicit operator
Rune
(uint value) => new Rune(value);
153
public static explicit operator
Rune
(int value) => new Rune(value);
183
/// A <see cref="
Rune
"/> instance that represents the Unicode replacement character U+FFFD.
185
public static
Rune
ReplacementChar => UnsafeCreate(UnicodeUtility.ReplacementChar);
227
private static unsafe
Rune
ChangeCaseCultureAware(
Rune
rune, TextInfo textInfo, bool toUpper)
297
public int CompareTo(
Rune
other) => this.Value - other.Value; // values don't span entire 32-bit domain; won't integer overflow
307
/// Decodes the <see cref="
Rune
"/> at the beginning of the provided UTF-16 source buffer.
312
/// and outs via <paramref name="result"/> the decoded <see cref="
Rune
"/> and via <paramref name="charsConsumed"/> the
313
/// number of <see langword="char"/>s used in the input buffer to encode the <see cref="
Rune
"/>.
332
public static OperationStatus DecodeFromUtf16(ReadOnlySpan<char> source, out
Rune
result, out int charsConsumed)
391
/// Decodes the <see cref="
Rune
"/> at the beginning of the provided UTF-8 source buffer.
396
/// and outs via <paramref name="result"/> the decoded <see cref="
Rune
"/> and via <paramref name="bytesConsumed"/> the
397
/// number of <see langword="byte"/>s used in the input buffer to encode the <see cref="
Rune
"/>.
416
public static OperationStatus DecodeFromUtf8(ReadOnlySpan<byte> source, out
Rune
result, out int bytesConsumed)
576
/// Decodes the <see cref="
Rune
"/> at the end of the provided UTF-16 source buffer.
579
/// This method is very similar to <see cref="DecodeFromUtf16(ReadOnlySpan{char}, out
Rune
, out int)"/>, but it allows
584
public static OperationStatus DecodeLastFromUtf16(ReadOnlySpan<char> source, out
Rune
result, out int charsConsumed)
636
/// Decodes the <see cref="
Rune
"/> at the end of the provided UTF-8 source buffer.
639
/// This method is very similar to <see cref="DecodeFromUtf8(ReadOnlySpan{byte}, out
Rune
, out int)"/>, but it allows
644
public static OperationStatus DecodeLastFromUtf8(ReadOnlySpan<byte> source, out
Rune
value, out int bytesConsumed)
721
OperationStatus operationStatus = DecodeFromUtf8(source, out
Rune
tempRune, out int tempBytesConsumed);
753
/// Encodes this <see cref="
Rune
"/> to a UTF-16 destination buffer.
771
/// Encodes this <see cref="
Rune
"/> to a UTF-8 destination buffer.
788
public override bool Equals([NotNullWhen(true)] object? obj) => (obj is
Rune
other) && Equals(other);
790
public bool Equals(
Rune
other) => this == other;
798
public unsafe bool Equals(
Rune
other, StringComparison comparisonType)
819
/// Gets the <see cref="
Rune
"/> which begins at index <paramref name="index"/> in
826
public static
Rune
GetRuneAt(string input, int index)
939
/// Returns a <see cref="string"/> representation of this <see cref="
Rune
"/> instance.
975
static bool IUtf8SpanParsable<
Rune
>.TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out
Rune
result)
991
static
Rune
IUtf8SpanParsable<
Rune
>.Parse(ReadOnlySpan<byte> utf8Text, System.IFormatProvider? provider)
993
if (DecodeFromUtf8(utf8Text, out
Rune
result, out int bytesConsumed) != OperationStatus.Done || bytesConsumed != utf8Text.Length)
1002
static
Rune
IParsable<
Rune
>.Parse(string s, IFormatProvider? provider)
1006
if (DecodeFromUtf16(s, out
Rune
result, out int charsConsumed) != OperationStatus.Done || charsConsumed != s.Length)
1015
static bool IParsable<
Rune
>.TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, out
Rune
result)
1027
static
Rune
ISpanParsable<
Rune
>.Parse(ReadOnlySpan<char> s, IFormatProvider? provider)
1029
if (DecodeFromUtf16(s, out
Rune
result, out int charsConsumed) != OperationStatus.Done || charsConsumed != s.Length)
1038
static bool ISpanParsable<
Rune
>.TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out
Rune
result)
1053
/// Attempts to create a <see cref="
Rune
"/> from the provided input value.
1055
public static bool TryCreate(char ch, out
Rune
result)
1071
/// Attempts to create a <see cref="
Rune
"/> from the provided UTF-16 surrogate pair.
1074
public static bool TryCreate(char highSurrogate, char lowSurrogate, out
Rune
result)
1101
/// Attempts to create a <see cref="
Rune
"/> from the provided input value.
1103
public static bool TryCreate(int value, out
Rune
result) => TryCreate((uint)value, out result);
1106
/// Attempts to create a <see cref="
Rune
"/> from the provided input value.
1109
public static bool TryCreate(uint value, out
Rune
result)
1124
/// Encodes this <see cref="
Rune
"/> to a UTF-16 destination buffer.
1143
private static bool TryEncodeToUtf16(
Rune
value, Span<char> destination, out int charsWritten)
1168
/// Encodes this <see cref="
Rune
"/> to a destination buffer as UTF-8 bytes.
1187
private static bool TryEncodeToUtf8(
Rune
value, Span<byte> destination, out int bytesWritten)
1245
/// Attempts to get the <see cref="
Rune
"/> which begins at index <paramref name="index"/> in
1253
public static bool TryGetRuneAt(string input, int index, out
Rune
value)
1285
/// Creates a <see cref="
Rune
"/> without performing validation on the input.
1288
internal static
Rune
UnsafeCreate(uint scalarValue) => new Rune(scalarValue, false);
1292
public static double GetNumericValue(
Rune
value)
1314
public static UnicodeCategory GetUnicodeCategory(
Rune
value)
1326
private static UnicodeCategory GetUnicodeCategoryNonAscii(
Rune
value)
1377
public static bool IsControl(
Rune
value)
1391
public static bool IsDigit(
Rune
value)
1403
public static bool IsLetter(
Rune
value)
1415
public static bool IsLetterOrDigit(
Rune
value)
1427
public static bool IsLower(
Rune
value)
1439
public static bool IsNumber(
Rune
value)
1451
public static bool IsPunctuation(
Rune
value)
1456
public static bool IsSeparator(
Rune
value)
1461
public static bool IsSymbol(
Rune
value)
1466
public static bool IsUpper(
Rune
value)
1478
public static bool IsWhiteSpace(
Rune
value)
1496
public static
Rune
ToLower(
Rune
value, CultureInfo culture)
1519
public static
Rune
ToLowerInvariant(
Rune
value)
1545
public static
Rune
ToUpper(
Rune
value, CultureInfo culture)
1568
public static
Rune
ToUpperInvariant(
Rune
value)
1601
public static
Rune
ToUpperOrdinal(
Rune
value)
1622
public static
Rune
ToLowerOrdinal(
Rune
value)
1646
if (obj is
Rune
other)
src\runtime\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\runtime\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\runtime\src\libraries\System.Private.CoreLib\src\System\Text\StringBuilder.cs (20)
666
/// Returns an enumeration of <see cref="
Rune
"/> from this builder.
669
/// Invalid sequences will be represented in the enumeration by <see cref="
Rune
.ReplacementChar"/>.
1056
/// Appends the string representation of a specified <see cref="
Rune
"/> to this instance.
1060
public unsafe StringBuilder Append(
Rune
value)
1063
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
1375
public unsafe StringBuilder Insert(int index,
Rune
value)
1378
ReadOnlySpan<char> valueChars = value.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2307
public StringBuilder Replace(
Rune
oldRune,
Rune
newRune)
2323
public unsafe StringBuilder Replace(
Rune
oldRune,
Rune
newRune, int startIndex, int count)
2326
ReadOnlySpan<char> oldChars = oldRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2329
ReadOnlySpan<char> newChars = newRune.AsSpan(stackalloc char[
Rune
.MaxUtf16CharsPerRune]);
2886
/// Gets the <see cref="
Rune
"/> that begins at a specified position in this builder.
2892
public
Rune
GetRuneAt(int index)
2894
if (TryGetRuneAt(index, out
Rune
value))
2903
/// 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.
2912
public bool TryGetRuneAt(int index, out
Rune
value)
2922
OperationStatus status =
Rune
.DecodeFromUtf16(chars, out
Rune
result, out _);
src\runtime\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\runtime\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\runtime\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\runtime\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\runtime\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\runtime\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)
src\runtime\artifacts\obj\System.Runtime\Release\net11.0\System.Runtime.Forwards.cs (1)
820
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Text.
Rune
))]
System.Runtime.Numerics (8)
src\runtime\src\libraries\Common\src\System\Number.Formatting.Common.cs (1)
887
var
r = new Rune(ch);
System\Number.Polyfill.cs (5)
94
if (DecodeFromUtfChar(span[i..], out
Rune
rune, out elemsConsumed) != OperationStatus.Done)
100
if (!
Rune
.IsWhiteSpace(rune))
111
internal static OperationStatus DecodeFromUtfChar<TChar>(ReadOnlySpan<TChar> span, out
Rune
result, out int elemsConsumed)
115
?
Rune
.DecodeFromUtf8(Unsafe.BitCast<ReadOnlySpan<TChar>, ReadOnlySpan<byte>>(span), out result, out elemsConsumed)
116
:
Rune
.DecodeFromUtf16(Unsafe.BitCast<ReadOnlySpan<TChar>, ReadOnlySpan<char>>(span), out result, out elemsConsumed);
System\Numerics\Complex.Generic.cs (2)
1970
if (Number.DecodeFromUtfChar(text[(semicolon + 1)..], out
Rune
rune, out int elemsConsumed) == OperationStatus.Done)
1972
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)
46
Rune
rune = new Rune(i); // guaranteed to succeed
47
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);
450
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)
689
chars[i] = (char)
Rune
.ReplacementChar.Value;
699
chars[i] = (char)
Rune
.ReplacementChar.Value;