1#![no_std]
15#![cfg_attr(feature = "f16", feature(f16))]
16
17#[cfg(feature = "std")]
18extern crate alloc;
19
20#[cfg(feature = "std")]
21extern crate std;
22
23mod error;
24mod header;
25mod iter;
26mod mode;
27mod reader;
28mod writer;
29
30#[cfg(feature = "mmap")]
31mod mmap_reader;
32
33mod engine;
34
35pub use engine::block::{VolumeShape, VoxelBlock};
37pub use engine::endian::FileEndian;
38
39pub use engine::codec::EndianCodec;
41
42pub use engine::convert::Convert;
44pub use engine::pipeline::{ConversionPath, get_conversion_path, is_zero_copy};
45
46#[cfg(feature = "simd")]
48pub use engine::convert::{convert_i8_slice_to_f32, convert_i16_slice_to_f32, convert_u16_slice_to_f32, convert_u8_slice_to_f32, try_simd_convert};
49
50#[cfg(feature = "f16")]
52pub use engine::convert::{convert_f16_slice_to_f32, convert_f32_slice_to_f16};
53
54pub use engine::block::SliceAccess;
56
57pub use error::Error;
58pub use header::{ExtHeader, ExtHeaderMut, Header};
59pub use mode::{Float32Complex, Int16Complex, Mode, Packed4Bit, Voxel};
60pub use reader::Reader;
61pub use writer::{Writer, WriterBuilder};
62
63pub use iter::{SliceIterConverted, SlabIterConverted};
65
66#[cfg(feature = "mmap")]
67pub use writer::MmapWriter;
68
69#[cfg(feature = "mmap")]
70pub use mmap_reader::MmapReader;
71
72#[cfg(feature = "std")]
74pub fn open(path: &str) -> Result<Reader, Error> {
75 Reader::open(path)
76}
77
78#[cfg(feature = "std")]
80pub fn create(path: &str) -> WriterBuilder {
81 WriterBuilder::new(path)
82}