hexlab 0.6.1

A hexagonal maze generation and manipulation library
Documentation
//! Hexlab is a library for generating and manipulating hexagonal mazes.
//!
//! # Features
//!
//! - Create hexagonal mazes of configurable size
//! - Customizable maze properties (radius, start position, seed)
//! - Efficient bit-flag representation of walls
//! - Multiple maze generation algorithms
//! - Maze builder pattern for easy maze creation
//!
//! # Examples
//!
//! Here's a quick example to create a simple hexagonal maze:
//!
//!```
//! use hexlab::prelude::*;
//!
//! let maze = MazeBuilder::new()
//!     .with_radius(3)
//!     .build()
//!     .expect("Failed to create maze");
//!
//! assert_eq!(maze.len(), 37); // A radius of 3 should create 37 tiles
//!```
//!
//! Customizing maze generation:
//!
//!```
//! use hexlab::prelude::*;
//!
//! let maze = MazeBuilder::new()
//!     .with_radius(2)
//!     .with_seed(12345)
//!     .with_start_position(Hex::new(1, -1))
//!     .build()
//!     .expect("Failed to create maze");
//!
//! assert!(maze.get(&Hex::new(1, -1)).is_some());
//!```
//!
//! Manipulating walls:
//!
//!```
//! use hexlab::prelude::*;
//!
//! let mut walls = Walls::empty();
//! assert!(!walls.insert(EdgeDirection::FLAT_NORTH));
//! assert!(walls.contains(EdgeDirection::FLAT_NORTH));
//! assert!(!walls.contains(EdgeDirection::FLAT_SOUTH));
//!```
mod builder;
pub mod errors;
mod generator;
mod maze;
#[cfg(feature = "pathfinding")]
mod pathfinding;
mod tile;
pub mod traits;
mod walls;

pub use builder::MazeBuilder;
pub use errors::*;
pub use generator::GeneratorType;
pub use maze::Maze;
pub use tile::Tile;
pub use traits::*;
pub use walls::Walls;

/// Prelude module containing commonly used types
pub mod prelude {
    pub use super::{errors::*, traits::*, GeneratorType, Maze, MazeBuilder, Tile, Walls};
    pub use hexx::{EdgeDirection, Hex, HexLayout};
}