pub(crate) use self::ram::MAX_RAM_BLOCK_SIZE;
pub use self::{esp32::Esp32Target, ram::RamTarget};
use crate::{connection::Connection, elf::RomSegment, error::Error};
mod esp32;
mod ram;
pub trait ProgressCallbacks {
fn init(&mut self, addr: u32, total: usize);
fn update(&mut self, current: usize);
fn finish(&mut self);
}
pub trait FlashTarget {
fn begin(&mut self, connection: &mut Connection) -> Result<(), Error>;
fn write_segment(
&mut self,
connection: &mut Connection,
segment: RomSegment,
progress: &mut Option<&mut dyn ProgressCallbacks>,
) -> Result<(), Error>;
fn finish(&mut self, connection: &mut Connection, reboot: bool) -> Result<(), Error>;
}