///|
pub struct WorkbookIOContext {
file_path : String?
zip_writer : ((@zip.Archive) -> Bytes raise)?
charset_transcoder : ((String, Bytes) -> String raise XlsxError)?
}
///|
fn empty_workbook_io_context() -> WorkbookIOContext {
{ file_path: None, zip_writer: None, charset_transcoder: None }
}
///|
fn workbook_io_context(workbook : Workbook) -> WorkbookIOContext {
workbook.io_context
}
///|
fn workbook_io_context_with_file_path(
io_context : WorkbookIOContext,
file_path : String?,
) -> WorkbookIOContext {
{
file_path,
zip_writer: io_context.zip_writer,
charset_transcoder: io_context.charset_transcoder,
}
}
///|
fn workbook_io_context_with_transcoder(
io_context : WorkbookIOContext,
transcoder : ((String, Bytes) -> String raise XlsxError)?,
) -> WorkbookIOContext {
{
file_path: io_context.file_path,
zip_writer: io_context.zip_writer,
charset_transcoder: transcoder,
}
}
///|
fn Workbook::set_io_context(
self : Workbook,
io_context : WorkbookIOContext,
) -> Unit {
self.io_context = io_context
}