1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
pub(crate) mod constants;
pub(crate) mod header;
mod properties;
mod read;
#[cfg(feature = "id3v1")]
use crate::id3::v1::tag::ID3v1Tag;
#[cfg(feature = "id3v2")]
use crate::id3::v2::tag::ID3v2Tag;
use lofty_attr::LoftyFile;
cfg_if::cfg_if! {
if #[cfg(feature = "ape")] {
pub(crate) mod tag;
pub use tag::ApeTag;
pub use tag::item::ApeItem;
pub use crate::picture::APE_PICTURE_TYPES;
}
}
pub use properties::ApeProperties;
#[derive(LoftyFile)]
#[lofty(read_fn = "read::read_from")]
#[lofty(internal_write_module_do_not_use_anywhere_else)]
pub struct ApeFile {
#[cfg(feature = "id3v1")]
#[lofty(tag_type = "ID3v1")]
pub(crate) id3v1_tag: Option<ID3v1Tag>,
#[cfg(feature = "id3v2")]
#[lofty(tag_type = "ID3v2")]
pub(crate) id3v2_tag: Option<ID3v2Tag>,
#[cfg(feature = "ape")]
#[lofty(tag_type = "APE")]
pub(crate) ape_tag: Option<ApeTag>,
pub(crate) properties: ApeProperties,
}