/// <summary>
        /// Retuns bool[] and advances the <see cref="Position"/> by <paramref name="bits"/> bits.
        /// </summary>
        /// <param name="bits">The number of bits to read.</param>
        /// <returns>bool[]</returns>
        public override bool[] ReadBits(int bitCount)
        {
            if (!CanRead(bitCount) || bitCount < 0)
            {
                IsError = true;
                return(Array.Empty <bool>());
            }

            var result = new bool[bitCount];

            Bits.AsSpan(Position, bitCount).CopyTo(result);

            Position += bitCount;

            return(result);
        }