using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace View_by_Distance.ThumbHash.Models;

public static partial class ThumbHash
{

    [StructLayout(LayoutKind.Sequential)]
    private readonly struct RGBA
    {

        public byte R { init; get; }
        public byte G { init; get; }
        public byte B { init; get; }
        public byte A { init; get; }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public RGBA(byte r, byte g, byte b, byte a)
        {
            R = r;
            G = g;
            B = b;
            A = a;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public void Deconstruct(out byte r, out byte g, out byte b, out byte a)
        {
            r = R;
            g = G;
            b = B;
            a = A;
        }

    }

}