use super::*;
#[derive(Clone, Debug, Getter, New)]
#[new(pub(crate))]
pub(crate) struct CoreLoad {
#[get(pub(crate))]
pub(crate) attributes: Vec<AttributeValue>,
#[get(pub(crate), type(copy))]
pub(crate) signal: Signal<u64>,
#[get(pub(crate))]
pub(crate) notifications: Rc<Cell<u64>>,
}
#[derive(Clone, Data, Debug, New)]
#[new(pub(crate))]
pub(crate) struct EngineLoad {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) emitter: ParticleEmitter,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) draw: DrawList,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) world: PhysicsWorld2D,
}
#[derive(Clone, Data, Debug, New)]
#[new(pub(crate))]
pub(crate) struct ChartLoad {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) option: ChartOption,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) measurer: TextMeasurer,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) renderer: SeriesRenderer,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) list: DisplayList,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) point_count: usize,
}
#[derive(Clone, Data, Debug, New)]
#[new(pub(crate))]
pub(crate) struct Workload {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) core: Option<CoreLoad>,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) engine: Option<EngineLoad>,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) chart: Option<ChartLoad>,
}
#[derive(
Clone, Copy, Data, Debug, Default, Eq, Hash, New, Ord, PartialEq, PartialOrd, Serialize,
)]
#[new(pub(crate))]
pub(crate) struct Work {
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) core_ticks: u64,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) engine_ticks: u64,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) chart_ticks: u64,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) checksum: u64,
}