Skip to main content

radiate_engines/
lib.rs

1pub mod builder;
2mod context;
3mod control;
4pub mod engine;
5mod events;
6mod generation;
7mod iter;
8mod limit;
9mod pipeline;
10mod steps;
11
12pub use builder::GeneticEngineBuilder;
13pub use control::EngineControl;
14pub use engine::GeneticEngine;
15pub use events::{EngineEvent, EventBus, EventHandler};
16pub use generation::Generation;
17pub use iter::{EngineIterator, EngineIteratorExt};
18pub use limit::Limit;
19pub use steps::EvaluateStep;
20
21pub use radiate_alters::*;
22pub use radiate_core::*;
23pub use radiate_error::{RadiateError, ensure, radiate_err};
24pub use radiate_selectors::*;
25pub use radiate_utils::Shape;
26
27pub(crate) type Result<T> = std::result::Result<T, RadiateError>;
28
29pub fn init_logging() {
30    pub use std::sync::Once;
31    static INIT_LOGGING: Once = Once::new();
32
33    INIT_LOGGING.call_once(|| {
34        use tracing_subscriber::fmt::format::FmtSpan;
35        use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
36
37        std::panic::set_hook(Box::new(|info| {
38            tracing::error!("PANIC: {}", info);
39        }));
40
41        tracing_subscriber::registry()
42            .with(
43                tracing_subscriber::fmt::layer()
44                    .with_span_events(FmtSpan::NEW | FmtSpan::CLOSE)
45                    .with_target(false)
46                    .with_level(true)
47                    .compact(),
48            )
49            .init();
50    });
51}