Struct libflate::gzip::HeaderBuilder
source · pub struct HeaderBuilder {
header: Header,
}
Expand description
GZIP header builder.
Fields§
§header: Header
Implementations§
source§impl HeaderBuilder
impl HeaderBuilder
sourcepub fn new() -> Self
pub fn new() -> Self
Makes a new builder instance.
Examples
use libflate::gzip::{HeaderBuilder, CompressionLevel, Os};
let header = HeaderBuilder::new().finish();
assert_eq!(header.compression_level(), CompressionLevel::Unknown);
assert_eq!(header.os(), Os::Unix);
assert_eq!(header.is_text(), false);
assert_eq!(header.is_verified(), false);
assert_eq!(header.extra_field(), None);
assert_eq!(header.filename(), None);
assert_eq!(header.comment(), None);
sourcepub fn modification_time(&mut self, modification_time: u32) -> &mut Self
pub fn modification_time(&mut self, modification_time: u32) -> &mut Self
Sets the modification time (UNIX timestamp).
Examples
use libflate::gzip::HeaderBuilder;
let header = HeaderBuilder::new().modification_time(10).finish();
assert_eq!(header.modification_time(), 10);
sourcepub fn os(&mut self, os: Os) -> &mut Self
pub fn os(&mut self, os: Os) -> &mut Self
Sets the OS type.
use libflate::gzip::{HeaderBuilder, Os};
let header = HeaderBuilder::new().os(Os::Ntfs).finish();
assert_eq!(header.os(), Os::Ntfs);
sourcepub fn text(&mut self) -> &mut Self
pub fn text(&mut self) -> &mut Self
Indicates the encoding data is a ASCII text.
Examples
use libflate::gzip::HeaderBuilder;
let header = HeaderBuilder::new().text().finish();
assert_eq!(header.is_text(), true);
sourcepub fn verify(&mut self) -> &mut Self
pub fn verify(&mut self) -> &mut Self
Specifies toe verify header bytes using CRC-16.
Examples
use libflate::gzip::HeaderBuilder;
let header = HeaderBuilder::new().verify().finish();
assert_eq!(header.is_verified(), true);
sourcepub fn extra_field(&mut self, extra: ExtraField) -> &mut Self
pub fn extra_field(&mut self, extra: ExtraField) -> &mut Self
Sets the extra field.
Examples
use libflate::gzip::{HeaderBuilder, ExtraField, ExtraSubField};
let subfield = ExtraSubField{id: [0, 1], data: vec![2, 3, 4]};
let extra = ExtraField{subfields: vec![subfield]};
let header = HeaderBuilder::new().extra_field(extra.clone()).finish();
assert_eq!(header.extra_field(), Some(&extra));
sourcepub fn filename(&mut self, filename: CString) -> &mut Self
pub fn filename(&mut self, filename: CString) -> &mut Self
Sets the file name.
Examples
use std::ffi::CString;
use libflate::gzip::HeaderBuilder;
let header = HeaderBuilder::new().filename(CString::new("foo").unwrap()).finish();
assert_eq!(header.filename(), Some(&CString::new("foo").unwrap()));
Trait Implementations§
source§impl Clone for HeaderBuilder
impl Clone for HeaderBuilder
source§fn clone(&self) -> HeaderBuilder
fn clone(&self) -> HeaderBuilder
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for HeaderBuilder
impl Debug for HeaderBuilder
Auto Trait Implementations§
impl RefUnwindSafe for HeaderBuilder
impl Send for HeaderBuilder
impl Sync for HeaderBuilder
impl Unpin for HeaderBuilder
impl UnwindSafe for HeaderBuilder
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