tetanes_core/
debug.rs

1use crate::ppu::Ppu;
2use std::sync::Arc;
3
4#[derive(Debug, Clone, PartialEq)]
5#[must_use]
6pub enum Debugger {
7    Ppu(PpuDebugger),
8}
9
10impl From<PpuDebugger> for Debugger {
11    fn from(debugger: PpuDebugger) -> Self {
12        Self::Ppu(debugger)
13    }
14}
15
16#[derive(Clone)]
17#[must_use]
18pub struct PpuDebugger {
19    pub cycle: u32,
20    pub scanline: u32,
21    pub callback: Arc<dyn Fn(Ppu) + Send + Sync + 'static>,
22}
23
24impl PartialEq for PpuDebugger {
25    fn eq(&self, other: &Self) -> bool {
26        self.cycle == other.cycle && self.scanline == other.scanline
27    }
28}
29
30impl std::fmt::Debug for PpuDebugger {
31    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
32        f.debug_struct("PpuDebugger")
33            .field("cycle", &self.cycle)
34            .field("scanline", &self.scanline)
35            .finish_non_exhaustive()
36    }
37}