Struct libpna::ArchiveWriter
source · pub struct ArchiveWriter<W: Write> { /* private fields */ }Expand description
A writer for Portable-Network-Archive.
Implementations§
source§impl<W: Write> ArchiveWriter<W>
impl<W: Write> ArchiveWriter<W>
sourcepub fn write_header(write: W) -> Result<Self>
pub fn write_header(write: W) -> Result<Self>
Writes the PNA archive header to the given Write object.
Arguments
write- TheWriteobject to write the header to.
Examples
use std::fs::File;
use libpna::ArchiveWriter;
let file = File::create("example.pna").unwrap();
let mut archive_writer = ArchiveWriter::write_header(file).unwrap();
archive_writer.finalize().unwrap();sourcepub fn add_solid_entries(&mut self, entries: impl SolidEntries) -> Result<usize>
pub fn add_solid_entries(&mut self, entries: impl SolidEntries) -> Result<usize>
Adds solid entries to the current writer.
This function takes an entries that implement the SolidEntries trait.
The entries are converted to bytes and written to the writer.
The function returns the number of bytes written.
Arguments
entries: Anentriesthat implement theSolidEntriestrait.
Returns
The number of bytes written to the writer.
Errors
This function may return an io::Error if the writing operation fails.
Examples
use std::fs::File;
use libpna::{ArchiveWriter, SolidEntriesBuilder, WriteOptionBuilder};
let file = File::create("example.pna").unwrap();
let mut archive_writer = ArchiveWriter::write_header(file).unwrap();
let solid_builder = SolidEntriesBuilder::new(WriteOptionBuilder::new().build()).unwrap();
let entries = solid_builder.build().unwrap();
archive_writer.add_solid_entries(entries).unwrap();
archive_writer.finalize().unwrap();sourcepub fn add_entry(&mut self, entry: impl Entry) -> Result<usize>
pub fn add_entry(&mut self, entry: impl Entry) -> Result<usize>
Adds a new entry to the archive.
Arguments
entry- The entry to add to the archive.
Examples
use std::fs::File;
use libpna::{ArchiveWriter, EntryBuilder, WriteOptionBuilder};
let file = File::create("example.pna").unwrap();
let mut archive_writer = ArchiveWriter::write_header(file).unwrap();
archive_writer.add_entry(EntryBuilder::new_file("example.txt".into(), WriteOptionBuilder::new().build()).unwrap().build().unwrap()).unwrap();
archive_writer.finalize().unwrap();sourcepub fn add_entry_part(&mut self, entry_part: EntryPart) -> Result<usize>
pub fn add_entry_part(&mut self, entry_part: EntryPart) -> Result<usize>
Adds a part of an entry to the archive.
Arguments
entry_part- The part of an entry to add to the archive.
Examples
use std::fs::File;
use libpna::{ArchiveWriter, EntryPart, EntryBuilder, WriteOptionBuilder};
let part1_file = File::create("example.part1.pna").unwrap();
let mut part1_writer = ArchiveWriter::write_header(part1_file).unwrap();
let entry = EntryBuilder::new_file("example.txt".into(), WriteOptionBuilder::new().build()).unwrap().build().unwrap();
part1_writer.add_entry_part(EntryPart::from(entry)).unwrap();
let part2_file = File::create("example.part2.pna").unwrap();
let part2_writer = part1_writer.split_to_next_archive(part2_file).unwrap();
part2_writer.finalize().unwrap();pub fn split_to_next_archive<OW: Write>( self, writer: OW ) -> Result<ArchiveWriter<OW>>
pub fn finalize(self) -> Result<W>
Auto Trait Implementations§
impl<W> RefUnwindSafe for ArchiveWriter<W>where W: RefUnwindSafe,
impl<W> Send for ArchiveWriter<W>where W: Send,
impl<W> Sync for ArchiveWriter<W>where W: Sync,
impl<W> Unpin for ArchiveWriter<W>where W: Unpin,
impl<W> UnwindSafe for ArchiveWriter<W>where W: UnwindSafe,
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