#![feature(downcast_unchecked)]
#![feature(drain_filter)]
#![allow(incomplete_features)]
#![feature(specialization)]
#[allow(unused_imports)]
#[macro_use]
extern crate log;
#[macro_use]
extern crate async_trait;
pub mod bus;
pub(crate) mod core;
pub mod event;
pub(crate) mod interface;
pub(crate) mod macros;
pub(crate) mod stop;
pub(crate) mod util;
pub use bus::{DABus, FireEvent};
pub use event::{EventDef, EventRegister};
pub use interface::{BusInterface, BusErrorUtil};
pub use stop::BusStop;
pub mod extras {
pub use crate::core::dyn_var::DynVar;
pub use crate::util::{AsAny, PossiblyClone, TypeNamed, async_util, dyn_debug::DynDebug};
pub use crate::event::async_fn_ptr;
}