selene_core/config/common/accessors.rs
1use std::path::PathBuf;
2
3use crate::{
4 config::common::CommonConfig, container::ContainerFormat, utils::recurse_list_from_root,
5};
6
7impl CommonConfig {
8 /// Returns all supported audio files from the configured source directories
9 #[must_use]
10 pub fn get_source_files(&self) -> Vec<PathBuf> {
11 self.source_dirs
12 .iter()
13 .flat_map(|path| -> Vec<PathBuf> {
14 recurse_list_from_root(path, false)
15 .filter(|f| ContainerFormat::from_file(f).is_some_and(|c| c.is_supported()))
16 .collect()
17 })
18 .collect()
19 }
20}