1#![doc = include_str!("../README.md")]
2#![deny(unsafe_code)]
3#![allow(
5 clippy::too_many_arguments, clippy::unnecessary_cast, clippy::manual_range_contains, clippy::new_without_default, clippy::manual_memcpy, clippy::needless_range_loop, clippy::manual_is_multiple_of, clippy::implicit_saturating_sub,clippy::needless_lifetimes, clippy::empty_line_after_doc_comments,
15 clippy::manual_div_ceil, clippy::type_complexity )]
18
19pub(crate) mod bitreader;
20pub(crate) mod crc;
21pub mod decoder;
22pub(crate) mod entropy;
23pub mod error;
24pub(crate) mod format;
25pub mod id3v2;
26pub(crate) mod nn_filter;
27pub(crate) mod predictor;
28pub(crate) mod range_coder;
29pub(crate) mod roll_buffer;
30pub mod tag;
31pub(crate) mod unprepare;
32
33pub use decoder::{decode, ApeDecoder, ApeInfo, FrameIterator, SeekResult, SourceFormat};
34pub use error::{ApeError, ApeResult};
35pub use id3v2::{read_id3v2, Id3v2Frame, Id3v2Tag};
36pub use tag::{read_tag, remove_tag, write_tag, ApeTag, ApeTagField, TagFieldType};