pub struct IsoWriter {
state: WriterState,
chunks: ChunkSet,
fat32_info: [Option<Fat32Info>; 16],
current_chunk: usize,
chunk_bytes: u64,
total_bytes: u64,
total_size: u64,
chunk_size: u64,
iso_name: [u8; 64],
name_len: usize,
progress_fn: Option<fn(bytes_written: u64, total_bytes: u64, chunk: usize, total_chunks: usize)>,
}Expand description
Streaming ISO writer
Handles partition creation, FAT32 formatting, and data writing.
Fields§
§state: WriterStateCurrent state
chunks: ChunkSetChunk partitions
fat32_info: [Option<Fat32Info>; 16]FAT32 info for each chunk
current_chunk: usizeCurrent chunk being written
chunk_bytes: u64Bytes written to current chunk
total_bytes: u64Total bytes written
total_size: u64Target total size
chunk_size: u64Chunk size limit
iso_name: [u8; 64]ISO name
name_len: usizeName length
progress_fn: Option<fn(bytes_written: u64, total_bytes: u64, chunk: usize, total_chunks: usize)>Progress callback
Implementations§
Source§impl IsoWriter
impl IsoWriter
Sourcepub fn set_progress(
&mut self,
f: fn(bytes_written: u64, total_bytes: u64, chunk: usize, total_chunks: usize),
)
pub fn set_progress( &mut self, f: fn(bytes_written: u64, total_bytes: u64, chunk: usize, total_chunks: usize), )
Set progress callback
Sourcepub fn state(&self) -> WriterState
pub fn state(&self) -> WriterState
Get current state
Sourcepub fn bytes_written(&self) -> u64
pub fn bytes_written(&self) -> u64
Get bytes written
Sourcepub fn initialize<B: BlockIo>(&mut self, block_io: &mut B) -> DiskResult<()>
pub fn initialize<B: BlockIo>(&mut self, block_io: &mut B) -> DiskResult<()>
Initialize writer: create partitions and format FAT32
Call this before writing any data.
Sourcepub fn initialize_with_partitions(
&mut self,
partitions: &[(u64, u64)],
fat32_infos: &[Fat32Info],
) -> DiskResult<()>
pub fn initialize_with_partitions( &mut self, partitions: &[(u64, u64)], fat32_infos: &[Fat32Info], ) -> DiskResult<()>
Initialize with pre-existing partitions
Use this if partitions were created earlier (e.g., pre-EBS).
Sourcepub fn write<B: BlockIo>(
&mut self,
block_io: &mut B,
data: &[u8],
) -> DiskResult<usize>
pub fn write<B: BlockIo>( &mut self, block_io: &mut B, data: &[u8], ) -> DiskResult<usize>
Write data to ISO
Handles chunk boundaries automatically.
Sourcefn write_sectors<B: BlockIo>(
&self,
block_io: &mut B,
start_lba: u64,
data: &[u8],
) -> DiskResult<()>
fn write_sectors<B: BlockIo>( &self, block_io: &mut B, start_lba: u64, data: &[u8], ) -> DiskResult<()>
Write sectors to disk
Sourcepub fn finalize<B: BlockIo>(&mut self, block_io: &mut B) -> DiskResult<()>
pub fn finalize<B: BlockIo>(&mut self, block_io: &mut B) -> DiskResult<()>
Finalize writing and flush
Auto Trait Implementations§
impl Freeze for IsoWriter
impl RefUnwindSafe for IsoWriter
impl Send for IsoWriter
impl Sync for IsoWriter
impl Unpin for IsoWriter
impl UnwindSafe for IsoWriter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more