1#![warn(rust_2018_idioms, rust_2018_compatibility)]
2
3#[cfg(feature = "handle")]
5pub mod handle;
6pub mod io;
8pub mod loader;
10#[cfg(feature = "packfile_io")]
11pub mod packfile_io;
12#[cfg(feature = "rpc_io")]
15pub mod rpc_io;
16pub mod storage;
18
19pub use crossbeam_channel;
20pub use distill_core::{AssetRef, AssetTypeId, AssetUuid};
21pub use loader::Loader;
22#[cfg(feature = "packfile_io")]
23pub use packfile_io::PackfileReader;
24#[cfg(feature = "rpc_io")]
25pub use rpc_io::RpcIO;
26pub use storage::LoadHandle;
27
28pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + 'static>>;
29
30#[cfg(feature = "handle")]
31#[macro_export]
32macro_rules! if_handle_enabled {
33 ($($tt:tt)*) => {
34 $($tt)*
35 };
36}
37
38#[cfg(not(feature = "handle"))]
39#[macro_export]
40#[doc(hidden)]
41macro_rules! if_handle_enabled {
42 ($($tt:tt)*) => {};
43}