auv-scan 0.0.22

Scroll scanning interaction implementation for AUV
//! In-memory scan frame bundles and metadata formatting.

use crate::frame::ScanFrame;

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct ScanFrameBundle {
  pub frames: Vec<ScanFrame>,
}

/// Metadata-only summary from in-memory [`ScanFrame`] fields (no disk IO).
pub fn summarize_scan_frame_text(frame: &ScanFrame) -> String {
  format!(
    "frame_id={} sequence_index={} captured_at_millis={} image={}x{} window={}x{}",
    frame.frame_id,
    frame.sequence_index,
    frame.captured_at_millis,
    frame.image_dimensions.width,
    frame.image_dimensions.height,
    frame.window_bounds.width,
    frame.window_bounds.height,
  )
}