#![warn(missing_docs)]
use std::{
any::{Any, TypeId},
collections::HashMap,
};
mod context;
pub use context::{Context, MainContext, SubContext};
mod entry;
pub use entry::Entry;
mod impls;
pub mod prelude;
pub trait Builder: Sized {
fn build<C: Context>(ctx: &mut C) -> Self;
}
pub trait NamedBuilder: Sized {
fn build_with_name<C: Context>(ctx: &mut C, name: &'static str) -> Self;
}
type AnyMap = HashMap<(TypeId, Option<&'static str>), Box<dyn Any + Send + Sync>>;
pub fn ctx() -> MainContext {
MainContext::new()
}