How to give a modules a different name than a crate

Solution 1:

Create a main crate xyz that has those as dependencies, and re-export all items from the subcrates inside it:

pub mod core {
    #[doc(inline)]
    pub use xyz_core::*;
}
pub mod graphics {
    #[doc(inline)]
    pub use xyz_graphics::*;
}
pub mod audio {
    #[doc(inline)]
    pub use xyz_audio::*;
}
pub mod input {
    #[doc(inline)]
    pub use xyz_input::*;
}