preload all defined lists independent of status

This commit is contained in:
yggverse 2026-03-28 06:11:20 +02:00
parent ad617a7f9a
commit cda06f0811

View file

@ -15,11 +15,9 @@ pub struct List {
impl List {
pub async fn init(src: &str, is_enabled: bool) -> Result<Self> {
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<Rule>, source: &Source) -> Result<()> {
debug!("Reload list `{source}`...");
rules.clear();
async fn load(rules: &mut HashSet<Rule>, 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