Struct libflate::gzip::HeaderBuilder
source · [−]pub struct HeaderBuilder {
header: Header,
}
Expand description
GZIP header builder.
Fields
header: Header
Implementations
sourceimpl 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
sourceimpl Clone for HeaderBuilder
impl Clone for HeaderBuilder
sourcefn clone(&self) -> HeaderBuilder
fn clone(&self) -> HeaderBuilder
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl 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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more