use super::*;
use crate::config::*;
use crate::daq::Qty;
use crate::siggen::Siggen;
use anyhow::{Result, bail};
use crossbeam::channel::Sender;
use reinterpret::{reinterpret_slice, reinterpret_vec};
use std::any::TypeId;
use std::sync::{Arc, RwLock};
use strum_macros::Display;
#[derive(Clone, Debug)]
pub enum PreCaptureBuffer {
Loaded(Vec<Arc<InStreamData>>),
NotLoaded,
}
#[derive(Clone, Debug)]
pub enum InStreamMsg {
InStreamData(Arc<InStreamData>),
StreamError(StreamError),
StreamStarted(Arc<StreamMetaData>, PreCaptureBuffer),
StreamStopped,
}