Skip to main content

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}