// ------------------------------------------------------------------------------ // <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 { internal partial struct __byte_32 { private const int SpanLength = 32; /// <summary>The length of the inline array.</summary> internal readonly int Length => SpanLength; internal unsafe fixed byte 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 byte this[int index] => ref Value[index]; internal readonly unsafe void CopyTo(Span<byte> target, int length = SpanLength) { fixed (byte* p0 = Value) new ReadOnlySpan<byte>(p0, SpanLength).Slice(0, length).CopyTo(target); } internal readonly unsafe byte[] ToArray(int length = SpanLength) { fixed (byte* p0 = Value) return new ReadOnlySpan<byte>(p0, SpanLength).Slice(0, length).ToArray(); } internal readonly unsafe bool Equals(ReadOnlySpan<byte> value) { fixed (byte* p0 = Value) { ReadOnlySpan<byte> span = new ReadOnlySpan<byte>(p0, SpanLength); return span.SequenceEqual(value); } } public static unsafe implicit operator __byte_32(ReadOnlySpan<byte> value) { Unsafe.SkipInit(out __byte_32 result); Span<byte> target = new Span<byte>(result.Value, SpanLength); value.CopyTo(target); int initLength = value.Length; target.Slice(initLength, SpanLength - initLength).Clear(); return result; } } }