Skip to main content

weavatrix_edit/application/
writer.rs

1use std::io::{self, Write};
2
3use super::EditChunks;
4
5/// Metadata returned after a prepared result is fully written.
6#[derive(Clone, Copy, Debug, Eq, PartialEq)]
7pub struct WriteSummary {
8    pub edits_applied: usize,
9    pub bytes_before: usize,
10    pub bytes_written: usize,
11}
12
13pub(super) fn write_prepared<W: Write + ?Sized>(
14    writer: &mut W,
15    chunks: EditChunks<'_>,
16    source_size: usize,
17    edit_count: usize,
18    output_size: usize,
19) -> io::Result<WriteSummary> {
20    for chunk in chunks {
21        writer.write_all(chunk.as_bytes())?;
22    }
23    Ok(WriteSummary {
24        edits_applied: edit_count,
25        bytes_before: source_size,
26        bytes_written: output_size,
27    })
28}