lifers_raylib/
lib.rs

1//! Raylib frontend for [lifers].
2//!
3//! Provides `RaylibFrontend` implementations that do all the
4//! displaying and rendering work.  It's recommended to use
5//! `FrontendBuilder` for convenience.
6//!
7//! _NOTE:_ See corresponding modules for different kinds of automata.
8//!
9//! The frontend can be used in an event loop, similar to a typical
10//! Raylib
11//! application:
12//!
13//! ```ignore
14//! # use lifers::prelude::*;
15//! # use lifers_raylib::generic::FrontendBuilder;
16//! let game = /* Automaton */
17//! #   todo!();
18//! let mut frontend = FrontendBuilder::new((480, 480))
19//!     .finish(game);
20//!
21//! while !frontend.window_should_close() {
22//!     frontend.display_grid();
23//!     frontend.tick();
24//! }
25//! ```
26
27#![warn(
28    clippy::pedantic,
29    clippy::nursery,
30    clippy::cargo,
31    clippy::allow_attributes_without_reason,
32    clippy::arithmetic_side_effects,
33    clippy::as_conversions,
34    clippy::clone_on_copy,
35    clippy::clone_on_ref_ptr,
36    clippy::dbg_macro,
37    clippy::decimal_literal_representation,
38    clippy::default_numeric_fallback,
39    clippy::default_union_representation,
40    clippy::exhaustive_enums,
41    clippy::expect_used,
42    clippy::format_push_string,
43    clippy::if_then_some_else_none
44)]
45#![allow(
46    clippy::must_use_candidate,
47    clippy::redundant_closure_call,
48    clippy::cast_precision_loss,
49    clippy::cast_possible_wrap,
50    clippy::module_name_repetitions
51)]
52
53pub mod generic;
54pub mod life_like;
55mod timer;