/*
    Hurry Curry! - a game about cooking
    Copyright (C) 2025 Hurry Curry! Contributors

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, version 3 of the License only.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

*/
mod customer;
mod dishwasher;
mod frank;
mod simple;
mod test;
mod waiter;

pub use customer::{Customer, CustomerConfig};
pub use dishwasher::DishWasher;
pub use frank::Frank;
pub use simple::Simple;
pub use test::Test;
pub use waiter::Waiter;

#[allow(clippy::type_complexity)]
pub const ALGO_CONSTRUCTORS: &[(&str, fn() -> crate::DynBotAlgo)] = &[
    ("test", || Box::new(Test::default())),
    ("simple", || Box::new(Simple::default())),
    ("waiter", || Box::new(Waiter::default())),
    ("dishwasher", || Box::new(DishWasher::default())),
    ("customer", || Box::new(Customer::default())),
    ("frank", || Box::new(Frank::default())),
];
