[][src]Struct yenc::EncodeOptions

pub struct EncodeOptions { /* fields omitted */ }

Options for encoding. The entry point for encoding a file (part) to a file or (TCP) stream.


impl EncodeOptions[src]

pub fn new() -> EncodeOptions[src]

Constructs a new EncodeOptions with defaults, see Default impl.

pub fn line_length(self, line_length: u8) -> EncodeOptions[src]

Sets the maximum line length.

pub fn parts(self, parts: u32) -> EncodeOptions[src]

Sets the number of parts (default=1). When the number of parts is 1, no '=ypart' line will be written in the ouput.

pub fn part(self, part: u32) -> EncodeOptions[src]

Sets the part number. Only used when parts > 1. The part number count starts at 1.

pub fn begin(self, begin: u64) -> EncodeOptions[src]

Sets the begin (which is the file offset + 1). Only used when parts > 1. The size of the part is end - begin + 1.

pub fn end(self, end: u64) -> EncodeOptions[src]

Sets the end. Only used when parts > 1. The size of the part is end - begin + 1. end should be larger than begin, otherwise an overflow error occurrs.

pub fn encode_file<P, W>(
    input_path: P,
    output: W
) -> Result<(), EncodeError> where
    P: AsRef<Path>,
    W: Write

Encodes the input file and writes it to the writer. For multi-part encoding, only one part is encoded. In case of multipart, the part number, begin and end offset need to be specified in the EncodeOptions. When directly encoding to an NNTP stream, the caller needs to take care of the message header and end of multi-line block (".\r\n").


let encode_options = yenc::EncodeOptions::default()
let mut output_file = std::fs::File::create("test1.bin.yenc.001").unwrap();
encode_options.encode_file("test1.bin", &mut output_file).unwrap();


  • when the output file already exists

pub fn check_options(&self) -> Result<(), EncodeError>[src]

Checks the options. Returns Ok(()) if all options are ok.


  • EncodeError::PartNumberMissing
  • EncodeError::PartBeginOffsetMissing
  • EncodeError::PartEndOffsetMissing
  • EncodeError::PartOffsetsInvalidRange

pub fn encode_stream<R, W>(
    input: R,
    output: W,
    length: u64,
    input_filename: &str
) -> Result<(), EncodeError> where
    R: Read + Seek,
    W: Write

Encodes the date from input from stream and writes the encoded data to the output stream. The input stream does not need to be a file, therefore, size and input_filename must be specified. The input_filename ends up as the filename in the yenc header.

Trait Implementations

impl Debug for EncodeOptions[src]

impl Default for EncodeOptions[src]

fn default() -> Self[src]

Constructs a new EncodeOptions instance, with the following defaults: line_length = 128. parts = 1, part = begin = end = 0

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.