namespace Minesweeper.Core
{
    public readonly struct BoardActionResult
    {
        public BoardActionResult(bool changed, bool hitMine, bool won, bool invalid)
        {
            Changed = changed;
            HitMine = hitMine;
            Won = won;
            Invalid = invalid;
        }

        public bool Changed { get; }
        public bool HitMine { get; }
        public bool Won { get; }
        public bool Invalid { get; }

        public static BoardActionResult NoChange => new BoardActionResult(false, false, false, false);
        public static BoardActionResult InvalidAction => new BoardActionResult(false, false, false, true);
    }
}
