use super::generic_checker::GenericChecker;
use crate::{checks::check::*, products::story::*, trace};
use actix::prelude::*;
#[derive(Debug, Copy, Clone)]
pub struct MultiChecker;
#[derive(Message, Debug, Clone)]
#[rtype(result = "Result<Stories, Stories>")]
pub struct Checks(pub Vec<Check>);
impl Handler<Checks> for MultiChecker {
type Result = Result<Stories, Stories>;
fn handle(&mut self, checks: Checks, _ctx: &mut Self::Context) -> Self::Result {
let stories_from_domains = Self::check_domains(&checks.0);
trace!("stories_from_domains: {:?}", stories_from_domains);
let stories_from_pages = Self::check_pages(&checks.0);
trace!("stories_from_pages: {:?}", stories_from_pages);
Ok([stories_from_domains, stories_from_pages].concat())
}
}
impl Actor for MultiChecker {
type Context = SyncContext<Self>;
}
impl GenericChecker for MultiChecker {}