use std::marker::PhantomData;
use peace_item_model::ItemId;
#[cfg(feature = "output_progress")]
use peace_progress_model::ProgressSender;
#[derive(Clone, Copy, Debug)]
pub struct FnCtx<'exec> {
pub item_id: &'exec ItemId,
#[cfg(feature = "output_progress")]
pub progress_sender: ProgressSender<'exec>,
pub marker: PhantomData<&'exec ()>,
}
impl<'exec> FnCtx<'exec> {
pub fn new(
item_id: &'exec ItemId,
#[cfg(feature = "output_progress")] progress_sender: ProgressSender<'exec>,
) -> Self {
Self {
item_id,
#[cfg(feature = "output_progress")]
progress_sender,
marker: PhantomData,
}
}
#[cfg(feature = "output_progress")]
pub fn progress_sender(&self) -> &ProgressSender<'exec> {
&self.progress_sender
}
}