Skip to main content

ai_othello/
lib.rs

1#![doc = include_str!("../README.md")]
2#![forbid(unsafe_code)]
3
4mod evaluation;
5mod mv;
6mod perft;
7mod position;
8mod protocol;
9mod reference;
10mod search;
11
12#[cfg(not(target_arch = "wasm32"))]
13mod cassio;
14
15#[cfg(feature = "wasm")]
16mod wasm;
17
18pub use evaluation::{Evaluation, EvaluationProfile, EvaluationWeights, evaluate};
19pub use mv::{Move, MoveList, Square};
20pub use perft::perft;
21pub use position::{GameResult, MoveError, Position, Side, Undo};
22pub use protocol::Engine;
23pub use search::{
24    Candidate, SEARCH_PRESETS, Score, ScoreKind, SearchConfig, SearchPreset, SearchReport,
25    SearchStats, search, search_preset, search_until,
26};
27
28#[cfg(not(target_arch = "wasm32"))]
29pub use cassio::CassioEngine;
30
31/// Slow reference code used to verify the bitboard implementation.
32///
33/// It favors straightforward ray walking over the production engine's
34/// bit-parallel operations.
35pub mod verification {
36    pub use crate::perft::reference_perft;
37    pub use crate::reference::{ReferencePosition, ReferenceUndo};
38}