#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[non_exhaustive]
pub struct MetadataLimits {
pub max_total_bytes: usize,
pub max_item_bytes: usize,
pub max_items: usize,
pub max_flac_block_bytes: usize,
pub max_flac_blocks: usize,
pub max_ogg_packet_bytes: usize,
pub max_ogg_pages: usize,
pub max_ogg_streams: usize,
}
impl MetadataLimits {
pub const DEFAULT_MAX_TOTAL_BYTES: usize = 64 * 1024 * 1024;
pub const DEFAULT_MAX_ITEM_BYTES: usize = 16 * 1024 * 1024;
pub const DEFAULT_MAX_ITEMS: usize = 16_384;
pub const DEFAULT_MAX_FLAC_BLOCK_BYTES: usize = 16 * 1024 * 1024 - 1;
pub const DEFAULT_MAX_FLAC_BLOCKS: usize = 1_024;
pub const DEFAULT_MAX_OGG_PACKET_BYTES: usize = 16 * 1024 * 1024;
pub const DEFAULT_MAX_OGG_PAGES: usize = 4_096;
pub const DEFAULT_MAX_OGG_STREAMS: usize = 64;
}
impl Default for MetadataLimits {
fn default() -> Self {
Self {
max_total_bytes: Self::DEFAULT_MAX_TOTAL_BYTES,
max_item_bytes: Self::DEFAULT_MAX_ITEM_BYTES,
max_items: Self::DEFAULT_MAX_ITEMS,
max_flac_block_bytes: Self::DEFAULT_MAX_FLAC_BLOCK_BYTES,
max_flac_blocks: Self::DEFAULT_MAX_FLAC_BLOCKS,
max_ogg_packet_bytes: Self::DEFAULT_MAX_OGG_PACKET_BYTES,
max_ogg_pages: Self::DEFAULT_MAX_OGG_PAGES,
max_ogg_streams: Self::DEFAULT_MAX_OGG_STREAMS,
}
}
}