use std::sync::mpsc::*; use crate::config::*; use swaystatus_plugin::*; use crate::communication::*; pub struct PulseVolumeRunnable<'p> { config : &'p PulseVolumeConfig, to_main : Box, from_main : Receiver, pulse : std::sync::Arc } impl<'p : 's, 's> PulseVolumeRunnable<'p> { pub fn new(config : &'p PulseVolumeConfig, to_main : Box) -> (Self, SenderForMain) { let (s, r) = channel(); let pulse = std::sync::Arc::new(PulseMainLoop {});//TODO: initialize this properly let result = PulseVolumeRunnable { config, to_main, from_main : r, pulse: pulse.clone() }; let sender = SenderForMain::new(s, pulse); (result, sender) } } impl<'p> SwayStatusModuleRunnable for PulseVolumeRunnable<'p> { fn run(&self) { //TODO } } pub struct PulseMainLoop { //TODO! }