use super::communication_interface::RiscvCommunicationInterface;
use std::fmt::Debug;
use std::sync::Arc;
pub trait RiscvDebugSequence: Send + Sync + Debug {
fn on_connect(&self, _interface: &mut RiscvCommunicationInterface) -> Result<(), crate::Error> {
Ok(())
}
fn detect_flash_size(
&self,
_interface: &mut RiscvCommunicationInterface,
) -> Result<Option<usize>, crate::Error> {
Ok(None)
}
}
#[derive(Debug)]
pub struct DefaultRiscvSequence(pub(crate) ());
impl DefaultRiscvSequence {
pub fn create() -> Arc<dyn RiscvDebugSequence> {
Arc::new(Self(()))
}
}
impl RiscvDebugSequence for DefaultRiscvSequence {}