mod block;
pub use block::*;
mod v3;
pub use v3::*;
mod v5;
pub use v5::*;
mod v6;
pub use v6::*;
mod v7;
pub use v7::*;
#[cfg(any(feature = "csgphs-v8-zstd", feature = "csgphs-v8-ruzstd"))]
mod v8;
#[cfg(any(feature = "csgphs-v8-zstd", feature = "csgphs-v8-ruzstd"))]
pub use v8::*;
pub use super::csgk::CSGK;
pub type Error = binrw::Error;
#[inline]
pub fn read_versioned<R: binrw::BinReaderExt>(mut read: R) -> Result<UnionPhysics, Error> {
read.read_le()
}
#[cfg(any(feature = "csgphs-v8-zstd", feature = "csgphs-v8-ruzstd"))]
#[binrw::binread]
#[br(little)]
#[derive(Debug, Clone)]
pub enum UnionPhysics {
CSGK(CSGK),
Block(Block),
V3(CSGPHS3),
V5(CSGPHS5),
V6(CSGPHS6),
V7(CSGPHS7),
V8(CSGPHS8),
}
#[cfg(not(any(feature = "csgphs-v8-zstd", feature = "csgphs-v8-ruzstd")))]
#[binrw::binrw]
#[brw(little)]
#[derive(Debug, Clone)]
pub enum UnionPhysics {
CSGK(CSGK),
Block(Block),
V3(CSGPHS3),
V5(CSGPHS5),
V6(CSGPHS6),
V7(CSGPHS7),
}