pub mod data_input;
pub mod data_output;
pub mod mmap;
pub mod var_int;
pub mod stream_buffer;
pub mod range_stream;
pub mod zero_copy;
pub mod endian;
pub mod smart_ptr;
pub mod complex_types;
pub mod versioning;
pub mod var_int_variants;
pub mod simd_validation;
pub mod simd_memory;
pub mod simd_encoding;
pub use data_input::{DataInput, ReaderDataInput, SliceDataInput};
pub use data_output::{DataOutput, FileDataOutput, VecDataOutput, WriterDataOutput};
pub use var_int::{SignedVarInt, VarInt};
pub use endian::{Endianness, EndianConvert, EndianIO, EndianConfig};
pub use smart_ptr::{SmartPtrSerialize, SerializableType, SerializationContext, DeserializationContext, SmartPtrConfig, SmartPtrSerializer};
pub use complex_types::{ComplexSerialize, ComplexTypeConfig, ComplexTypeSerializer, NestedSerialize};
pub use versioning::{Version, VersionProxy, VersionManager, VersionedSerialize, MigrationRegistry, VersionConfig, VersionedSerializer};
pub use var_int_variants::{VarIntStrategy, VarIntEncoder, choose_optimal_strategy, choose_optimal_strategy_signed};
pub use stream_buffer::{StreamBufferConfig, StreamBufferedReader, StreamBufferedWriter};
pub use range_stream::{RangeReader, RangeWriter, MultiRangeReader};
pub use zero_copy::{ZeroCopyRead, ZeroCopyWrite, ZeroCopyBuffer, ZeroCopyReader, ZeroCopyWriter, VectoredIO};
#[cfg(feature = "mmap")]
pub use data_input::MmapDataInput;
#[cfg(feature = "mmap")]
pub use mmap::{AccessPattern, InputStrategy, MemoryMappedInput, MemoryMappedOutput};
#[cfg(feature = "mmap")]
pub use zero_copy::mmap::MmapZeroCopyReader;
pub use data_input::{from_reader, from_slice};
pub use data_output::{to_file, to_file_append, to_vec, to_vec_with_capacity, to_writer};
pub use range_stream::range;
#[cfg(feature = "mmap")]
pub use data_input::from_file;