diff --git a/src/rules/list.rs b/src/rules/list.rs index 12fa343..dcf5d10 100644 --- a/src/rules/list.rs +++ b/src/rules/list.rs @@ -15,11 +15,9 @@ pub struct List { impl List { pub async fn init(src: &str, is_enabled: bool) -> Result { - let mut rules = HashSet::new(); let source = Source::from_str(src)?; - if is_enabled { - reload(&mut rules, &source).await?; - } + let mut rules = HashSet::new(); + load(&mut rules, &source).await?; Ok(Self { rules, source, @@ -31,10 +29,8 @@ impl List { let was_enabled = self.is_enabled; self.is_enabled = is_enabled; if self.is_enabled { - reload(&mut self.rules, &self.source).await?; debug!("List `{}` enabled", &self.source); } else { - self.rules.clear(); debug!("List `{}` disabled", &self.source); } Ok(was_enabled) @@ -44,9 +40,8 @@ impl List { self.is_enabled && self.rules.iter().any(|rule| rule.contains(value)) } } -async fn reload(rules: &mut HashSet, source: &Source) -> Result<()> { - debug!("Reload list `{source}`..."); - rules.clear(); +async fn load(rules: &mut HashSet, source: &Source) -> Result<()> { + debug!("Load list `{source}`..."); for line in source.get().await?.lines() { if line.starts_with("/") || line.starts_with("#") || line.is_empty() { continue; // skip comments