using System;

namespace VMdemo.Core
{
    [Serializable]
    public struct AddressParts
    {
        public AddressParts(ulong vpn, ulong offset, ulong l1Index, ulong l2Index)
        {
            Vpn = vpn;
            Offset = offset;
            L1Index = l1Index;
            L2Index = l2Index;
        }

        public static AddressParts Empty => new AddressParts(0UL, 0UL, 0UL, 0UL);

        public ulong Vpn;
        public ulong Offset;
        public ulong L1Index;
        public ulong L2Index;

        public override string ToString()
        {
            return $"VPN={Vpn}, Offset={Offset}, L1={L1Index}, L2={L2Index}";
        }
    }
}
