use serde::Deserialize;
#[derive(Clone, Debug, Deserialize)]
pub struct FileTreeViewConfig {
#[serde(default)]
pub show_hidden: bool,
#[serde(default = "default_true")]
pub builtin_excludes: bool,
#[serde(default)]
pub extra_excludes: Vec<String>,
#[serde(default)]
pub include: Vec<String>,
#[serde(default)]
pub respect_gitignore: bool,
}
fn default_true() -> bool {
true
}
impl Default for FileTreeViewConfig {
fn default() -> Self {
Self {
show_hidden: false,
builtin_excludes: true,
extra_excludes: Vec::new(),
include: Vec::new(),
respect_gitignore: false,
}
}
}
impl FileTreeViewConfig {
pub fn to_filter(&self) -> apimock_routing::view::build::FileTreeFilter {
let mut filter = apimock_routing::view::build::FileTreeFilter::default();
filter.show_hidden = self.show_hidden;
filter.builtin_excludes = self.builtin_excludes;
filter.extra_excludes = self.extra_excludes.clone();
filter.include = self.include.clone();
filter.respect_gitignore = self.respect_gitignore;
filter
}
}