#![allow(clippy::module_name_repetitions)]
#![allow(clippy::multiple_crate_versions)]
mod app;
mod ecs;
pub mod prelude;
mod renderer;
mod shader;
#[cfg(debug_assertions)]
use core::any::type_name;
#[cfg(debug_assertions)]
fn type_name_tail<T>() -> String {
let type_name = type_name::<T>();
let tail = &type_name[type_name.rfind(':').expect("name error") + 1..];
tail.to_owned()
}
fn path_to_log_source(path: &str) -> String {
let pattern = "src/";
let src_path = &path[path.rfind(pattern).expect("path error") + pattern.len()..];
let src_crate = &src_path[..src_path.find('/').expect("path error")];
["dacho", src_crate].join("::")
}