#![cfg_attr(feature = "document-features", doc = document_features::document_features!())]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[cfg(doctest)]
#[doc = include_str!("../../README.md")]
type _ReadmeTest = ();
pub mod error;
mod kinds;
pub mod traits;
#[cfg(feature = "v3")]
pub mod v3;
#[cfg(feature = "v3_lzma")]
pub mod v3_lzma;
pub mod v4;
#[cfg(feature = "v3")]
pub use crate::v3::V3;
pub use crate::v4::V4;
pub use crate::v4::data::DataSize;
pub use crate::v4::export::Export;
pub use crate::v4::filesystem::node::{
InnerNode, Node, NodeHeader, SquashfsBlockDevice, SquashfsCharacterDevice, SquashfsDir,
SquashfsFileReader, SquashfsFileWriter, SquashfsSymlink,
};
pub use crate::v4::filesystem::reader::{FilesystemReader, FilesystemReaderFile};
#[cfg(not(feature = "parallel"))]
pub use crate::v4::filesystem::reader_no_parallel::SquashfsReadFile;
#[cfg(feature = "parallel")]
pub use crate::v4::filesystem::reader_parallel::SquashfsReadFile;
pub use crate::v4::filesystem::writer::{
CompressionExtra, ExtraXz, FilesystemCompressor, FilesystemWriter,
};
pub use crate::v4::fragment::Fragment;
pub use crate::v4::id::Id;
pub use crate::v4::inode::{BasicFile, Inode};
pub use crate::v4::reader::BufReadSeek;
pub use crate::v4::squashfs::{
DEFAULT_BLOCK_SIZE, DEFAULT_PAD_LEN, Flags, MAX_BLOCK_SIZE, MIN_BLOCK_SIZE, Squashfs,
SuperBlock,
};
pub use crate::error::BackhandError;
pub use crate::traits::squashfs::create_squashfs_from_kind;
pub use crate::traits::{FilesystemReaderTrait, GenericSquashfs, SquashfsVersion};
pub mod kind {
pub use crate::kinds::{AVM_BE_V4_0, BE_V4_0, Endian, Kind, LE_V4_0, Magic};
#[cfg(feature = "v3")]
pub use crate::kinds::{BE_V3_0, LE_V3_0};
#[cfg(feature = "v3_lzma")]
pub use crate::kinds::{
BE_V3_0_LZMA, BE_V3_1_LZMA_SWAP, LE_V3_0_LZMA, LE_V3_1_LZMA_SWAP, NETGEAR_BE_V3_0_LZMA,
NETGEAR_BE_V3_0_LZMA_STANDARD,
};
}
pub mod compression {
pub use crate::traits::CompressionAction;
pub use crate::v4::compressor::{
CompressionOptions, Compressor, DefaultCompressor, Gzip, Lz4, Lzo, Xz, Zstd,
};
}