[][src]Crate sweeper

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 and alloc (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 the serde crate for more.

  • track_caller — use track_caller attributes

    Places the track_caller attribute on indexing operators and other panicking methods, improving panic messages. Requires a nightly compiler as of Rust 1.43.0.


pub use iter::*;



Iterators useful for traversing a field.



A clearing on the specified field.


A mutable reference to a clearing on the specified field.


Represents a playfield.



The event produced after clicking a tile.


Represents the state of a flag


A Minesweeper tile.

Type Definitions


The outcome of a chord operation.


The coordinates of a tile on a field.


The dimensions of a field.


The outcome of one of the chords in a recursive chord operation.