#![doc(hidden)]
use crate::diff::diff_snapshots;
use crate::state::{DiffEvent, INSPECTOR_STATE, Snapshot};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RawSnapshot {
pub label: String,
pub debug_repr: String,
pub file: String,
pub line: u32,
}
pub fn send_snapshot(snap: RawSnapshot) {
let full = Snapshot::capture(&snap.label, snap.debug_repr, &snap.file, snap.line);
INSPECTOR_STATE.push_snapshot(full.clone());
#[cfg(feature = "web")]
{
use crate::server::broadcast_snapshot;
broadcast_snapshot(&full);
}
}
pub fn send_diff(old: &Snapshot, new: &Snapshot) {
let chunks = diff_snapshots(old, new);
let diff_event = DiffEvent {
old: old.clone(),
new: new.clone(),
chunks: chunks.clone(),
};
INSPECTOR_STATE.push_diff(old.clone(), new.clone(), chunks);
#[cfg(feature = "web")]
{
use crate::server::broadcast_diff;
broadcast_diff(&diff_event);
}
}