#![allow(clippy::module_name_repetitions)]
use crate::config::CategorizerConfig;
#[must_use]
pub fn pcm_audio() -> CategorizerConfig {
CategorizerConfig {
name: "pcm_audio".into(),
extensions: vec!["wav".into(), "aiff".into(), "aif".into()],
magic_bytes: vec![b'R', b'I', b'F', b'F'], codec: "flac".into(),
max_size: None,
enabled: true,
}
}
#[must_use]
pub fn fits() -> CategorizerConfig {
CategorizerConfig {
name: "fits".into(),
extensions: vec!["fits".into(), "fit".into(), "fts".into()],
magic_bytes: vec![b'S', b'I', b'M', b'P', b'L', b'E'], codec: "ricepp".into(),
max_size: None,
enabled: true,
}
}
#[must_use]
pub fn delimited_text() -> CategorizerConfig {
CategorizerConfig {
name: "delimited_text".into(),
extensions: vec![
"csv".into(),
"tsv".into(),
"json".into(),
"jsonl".into(),
"ndjson".into(),
],
magic_bytes: vec![],
codec: "fsst+brotli".into(),
max_size: Some(65_536),
enabled: true,
}
}
#[must_use]
pub fn bzip2() -> CategorizerConfig {
CategorizerConfig {
name: "bzip2".into(),
extensions: vec!["bz2".into(), "tbz2".into()],
magic_bytes: vec![b'B', b'Z', b'h'], codec: "bzip2".into(),
max_size: None,
enabled: true,
}
}
#[must_use]
pub fn all_v0_1() -> Vec<CategorizerConfig> {
vec![pcm_audio(), fits(), delimited_text(), bzip2()]
}