File: _generated\214\Windows.Win32.RECT.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
{
	namespace Foundation
	{
		internal partial struct __RECT_3
		{
			private const int SpanLength = 3;

			/// <summary>The length of the inline array.</summary>
			internal readonly int Length => SpanLength;

			internal winmdroot.Foundation.RECT _0,_1,_2;

			internal readonly unsafe void CopyTo(Span<winmdroot.Foundation.RECT> target, int length = SpanLength)
			{
				fixed (winmdroot.Foundation.RECT* p0 = &_0)
					new ReadOnlySpan<winmdroot.Foundation.RECT>(p0, SpanLength).Slice(0, length).CopyTo(target);
			}

			internal readonly unsafe winmdroot.Foundation.RECT[] ToArray(int length = SpanLength)
			{
				fixed (winmdroot.Foundation.RECT* p0 = &_0)
					return new ReadOnlySpan<winmdroot.Foundation.RECT>(p0, SpanLength).Slice(0, length).ToArray();
			}

			public static unsafe implicit operator __RECT_3(ReadOnlySpan<winmdroot.Foundation.RECT> value)
			{
				Unsafe.SkipInit(out __RECT_3 result);
				Span<winmdroot.Foundation.RECT> target = new Span<winmdroot.Foundation.RECT>(&result._0, SpanLength);
				value.CopyTo(target);
				int initLength = value.Length;
				target.Slice(initLength, SpanLength - initLength).Clear();
				return result;
			}
		}
	}
}