| File: _generated\37\Windows.Win32.char.InlineArrays.g.cs | Web Access |
| Project: src\winforms\src\System.Private.Windows.Core\src\Microsoft.Private.Windows.Core.csproj (Microsoft.Private.Windows.Core) |
// ------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> // ------------------------------------------------------------------------------ #pragma warning disable CS1591,CS1573,CS0465,CS0649,CS8019,CS1570,CS1584,CS1658,CS0436,CS8981,SYSLIB1092,CS3021,CS3019 using global::System; using global::System.Diagnostics; using global::System.Diagnostics.CodeAnalysis; using global::System.Runtime.CompilerServices; using global::System.Runtime.InteropServices; using global::System.Runtime.Versioning; using winmdroot = global::Windows.Win32; namespace Windows.Win32 { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] internal partial struct __char_32 { private const int SpanLength = 32; /// <summary>The length of the inline array.</summary> internal readonly int Length => SpanLength; internal unsafe fixed char Value[SpanLength]; /// <summary> /// Gets a ref to an individual element of the inline array. /// ⚠ Important ⚠: When this struct is on the stack, do not let the returned reference outlive the stack frame that defines it. /// </summary> [UnscopedRef] internal unsafe ref char this[int index] => ref Value[index]; /// <summary> /// Gets this inline array as a span. /// </summary> /// <remarks> /// ⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it. /// </remarks> [UnscopedRef] internal unsafe Span<char> AsSpan() => MemoryMarshal.CreateSpan(ref Value[0], SpanLength); /// <summary> /// Gets this inline array as a span. /// </summary> /// <remarks> /// ⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it. /// </remarks> [UnscopedRef] internal unsafe readonly ReadOnlySpan<char> AsReadOnlySpan() => MemoryMarshal.CreateReadOnlySpan(ref Unsafe.AsRef(in Value[0]), SpanLength); internal readonly bool Equals(ReadOnlySpan<char> value) => value.Length == SpanLength ? AsReadOnlySpan().SequenceEqual(value) : AsReadOnlySpan().SliceAtNull().SequenceEqual(value); internal readonly bool Equals(string value) => Equals(value.AsSpan()); /// <summary> /// Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters. /// </summary> /// <exception cref="ArgumentOutOfRangeException"> /// Thrown when <paramref name="length"/> is less than <c>0</c> or greater than <see cref="Length"/>. /// </exception> internal readonly string ToString(int length) => AsReadOnlySpan().Slice(0, length).ToString(); /// <summary> /// Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter). /// </summary> public override readonly string ToString() => AsReadOnlySpan().SliceAtNull().ToString(); public static implicit operator __char_32(string value) => value.AsSpan(); public static implicit operator __char_32(ReadOnlySpan<char> value) { Unsafe.SkipInit(out __char_32 result); value.CopyTo(result.AsSpan()); int initLength = value.Length; result.AsSpan().Slice(initLength, SpanLength - initLength).Clear(); return result; } } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] internal partial struct __char_260 { private const int SpanLength = 260; /// <summary>The length of the inline array.</summary> internal readonly int Length => SpanLength; internal unsafe fixed char Value[SpanLength]; /// <summary> /// Gets a ref to an individual element of the inline array. /// ⚠ Important ⚠: When this struct is on the stack, do not let the returned reference outlive the stack frame that defines it. /// </summary> [UnscopedRef] internal unsafe ref char this[int index] => ref Value[index]; /// <summary> /// Gets this inline array as a span. /// </summary> /// <remarks> /// ⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it. /// </remarks> [UnscopedRef] internal unsafe Span<char> AsSpan() => MemoryMarshal.CreateSpan(ref Value[0], SpanLength); /// <summary> /// Gets this inline array as a span. /// </summary> /// <remarks> /// ⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it. /// </remarks> [UnscopedRef] internal unsafe readonly ReadOnlySpan<char> AsReadOnlySpan() => MemoryMarshal.CreateReadOnlySpan(ref Unsafe.AsRef(in Value[0]), SpanLength); internal readonly bool Equals(ReadOnlySpan<char> value) => value.Length == SpanLength ? AsReadOnlySpan().SequenceEqual(value) : AsReadOnlySpan().SliceAtNull().SequenceEqual(value); internal readonly bool Equals(string value) => Equals(value.AsSpan()); /// <summary> /// Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters. /// </summary> /// <exception cref="ArgumentOutOfRangeException"> /// Thrown when <paramref name="length"/> is less than <c>0</c> or greater than <see cref="Length"/>. /// </exception> internal readonly string ToString(int length) => AsReadOnlySpan().Slice(0, length).ToString(); /// <summary> /// Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter). /// </summary> public override readonly string ToString() => AsReadOnlySpan().SliceAtNull().ToString(); public static implicit operator __char_260(string value) => value.AsSpan(); public static implicit operator __char_260(ReadOnlySpan<char> value) { Unsafe.SkipInit(out __char_260 result); value.CopyTo(result.AsSpan()); int initLength = value.Length; result.AsSpan().Slice(initLength, SpanLength - initLength).Clear(); return result; } } }