pub mod arena;
pub mod backend;
pub mod containers;
pub mod error;
pub mod file;
pub mod io;
pub mod math;
pub mod mipmap;
pub mod parallel;
pub mod parameters;
pub mod parser;
pub mod sampling;
pub mod strings;

pub use arena::Upload;
pub use error::FileLoc;
pub use file::{read_float_file, resolve_filename};
pub use parameters::{
    ParameterDictionary, ParsedParameter, ParsedParameterVector, TextureParameterDictionary,
};
pub use strings::*;

#[cfg(feature = "vulkan")]
pub type Arena = arena::Arena<backend::vulkan::VulkanAllocator>;

#[cfg(all(feature = "cuda", not(feature = "vulkan")))]
pub type Arena = arena::Arena<backend::cuda::CudaAllocator>;

#[cfg(not(any(feature = "cuda", feature = "vulkan")))]
pub type Arena = arena::Arena<backend::SystemAllocator>;
