/// Creates a new [`Area`] with the given positions and mine count.
///
/// # Examples
/// ```
/// use mineraker::area::{Area, MineCount};
/// use mineraker::position::Position;
///
/// let positions = [
///     Position::new(4, 4),
///     Position::new(5, 5),
/// ];
///
/// // Mine count as single integer.
/// let area = Area::new(positions.into(), 1);
///
/// // Mine count as range with integers.
/// let area2 = Area::new(positions.into(), 1..=2);
///
/// // Mine count via `MineCount` construct function.
/// let area3 = Area::new(positions.into(), MineCount::from_range(0, 2));
/// ```
Creates a new [`Area`] with the given positions and mine count.
Creates a new [ ` Area ` ] with the given positions and mine count .
pub fn new<T>(positions: HashSet<Position>, mine_count: T) -> Self
    where
        T: Into<MineCount>,
    {
        Self {
            positions,
            mine_count: mine_count.into(),
        }
    }
pub fn new < T > ( positions : HashSet < Position > , mine_count : T ) -> Self where T : Into < MineCount > , { Self { positions , mine_count : mine_count . into ( ) , } }
Creates a new [`Area`] with the given positions and mine count.
Creates a new [ ` Area ` ] with the given positions and mine count .
positions
HashSet<Position>
mine_count
T
examples
```
use mineraker::area::{Area, MineCount};
use mineraker::position::Position.



Mine count as single integer.
let area = Area::new(positions.into(), 1).

Mine count as range with integers.

Mine count via `MineCount` construct function.
let area3 = Area::new(positions.into(), MineCount::from_range(0, 2));
```
` ` ` use mineraker :: area :: { Area MineCount } ; use mineraker :: position :: Position . Mine count as single integer . let area = Area :: new ( positions . into () 1 ) . Mine count as range with integers . Mine count via ` MineCount ` construct function . let area3 = Area :: new ( positions . into () MineCount :: from_range ( 0 2 )) ; ` ` `