Expand description
A foundation for Minesweeper implementations in Rust.
The purpose of such a crate is to have Minesweeper implementations depend on a common crate, i.e. for them to share the basic code related to managing a Minesweeper session and only bother writing the code for the UI, sound effects, input and such. Such implementations can be seen as frontends to this library.
§Feature gates
-
std
— enable a dependency on the hosted standard library (enabled by default)Without this feature, the crate only depends on
core
andalloc
(meaning that usage in an environment without even a memory allocator is impossible), allowing it to run in a freestanding environment, allowing one to implement Minesweeper on a microcontroller, meaning Arduino Minesweeper, ESP32 Minesweeper, OSDev Minesweeper… you name it. -
generation
— enable random generation (enabled by default)Enables the dependency on
rand
, used for generating random fields. Disable to remove said dependency if you’d like to use your own random field generator. -
serialization
— enable support for field serialization (enabled by default, disable to speed up compilation)Enables the dependency on
serde
and its derive macros, which allows one to serialize and deserialize a field to store it on the hard drive, send it over the network or otherwise perform a certain operation which requires having the field in a consistent (platform-independent) format. See theserde
crate for more. -
track_caller
— usetrack_caller
attributesPlaces the
track_caller
attribute on indexing operators and other panicking methods, improving panic messages. Requires a nightly compiler as of Rust 1.43.0.
Re-exports§
pub use iter::*;
Modules§
- iter
- Iterators useful for traversing a field.
Structs§
- Clearing
- A clearing on the specified field.
- Clearing
Mut - A mutable reference to a clearing on the specified field.
- Field
- Represents a playfield.
Enums§
- Click
Outcome - The event produced after clicking a tile.
- Flag
- Represents the state of a flag
- Tile
- A Minesweeper tile.
Type Aliases§
- Chord
Outcome - The outcome of a chord operation.
- Field
Coordinates - The coordinates of a tile on a field.
- Field
Dimensions - The dimensions of a field.
- Recursive
Chord Outcome - The outcome of one of the chords in a recursive chord operation.