gmt_dos-actors 4.1.2

Giant Magellan Telescope Dynamic Optical Simulation Actor Model
Documentation
use crate::{DifferentiatorToIntegrator, FilterToSink, SamplerToSink, SignalToFilter};
use dos_actors::{
    io::{Data, Read},
    Update,
};
use std::{ops::Deref, sync::Arc};

#[derive(Default)]
pub struct Logging(Vec<f64>);
impl Deref for Logging {
    type Target = Vec<f64>;
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl Update for Logging {}
impl Read<SignalToFilter> for Logging {
    fn read(&mut self, data: Arc<Data<SignalToFilter>>) {
        self.0.push(**data);
    }
}
impl Read<FilterToSink> for Logging {
    fn read(&mut self, data: Arc<Data<FilterToSink>>) {
        self.0.push(**data);
    }
}
impl Read<SamplerToSink> for Logging {
    fn read(&mut self, data: Arc<Data<SamplerToSink>>) {
        self.0.push(**data);
    }
}
impl Read<DifferentiatorToIntegrator> for Logging {
    fn read(&mut self, data: Arc<Data<DifferentiatorToIntegrator>>) {
        self.0.push(**data);
    }
}