pub struct EncodeOptions { /* private fields */ }Expand description
Options for encoding. The entry point for encoding a file (part) to a file or (TCP) stream.
Implementations§
Source§impl EncodeOptions
impl EncodeOptions
Sourcepub fn new() -> EncodeOptions
pub fn new() -> EncodeOptions
Constructs a new EncodeOptions with defaults, see Default impl.
Sourcepub fn line_length(self, line_length: u8) -> EncodeOptions
pub fn line_length(self, line_length: u8) -> EncodeOptions
Sets the maximum line length.
Sourcepub fn parts(self, parts: u32) -> EncodeOptions
pub fn parts(self, parts: u32) -> EncodeOptions
Sets the number of parts (default=1). When the number of parts is 1, no ‘=ypart’ line will be written in the ouput.
Sourcepub fn part(self, part: u32) -> EncodeOptions
pub fn part(self, part: u32) -> EncodeOptions
Sets the part number.
Only used when parts > 1.
The part number count starts at 1.
Sourcepub fn begin(self, begin: u64) -> EncodeOptions
pub fn begin(self, begin: u64) -> EncodeOptions
Sets the begin (which is the file offset + 1).
Only used when parts > 1.
The size of the part is end - begin + 1.
Sourcepub fn end(self, end: u64) -> EncodeOptions
pub fn end(self, end: u64) -> EncodeOptions
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.
Sourcepub fn encode_file<P, W>(
&self,
input_path: P,
output: W,
) -> Result<(), EncodeError>
pub fn encode_file<P, W>( &self, input_path: P, output: W, ) -> Result<(), EncodeError>
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").
§Example
let encode_options = yenc::EncodeOptions::default()
.parts(2)
.part(1)
.begin(1)
.end(38400);
let mut output_file = std::fs::File::create("test1.bin.yenc.001").unwrap();
encode_options.encode_file("test1.bin", &mut output_file).unwrap();§Errors
- when the output file already exists
Sourcepub fn check_options(&self) -> Result<(), EncodeError>
pub fn check_options(&self) -> Result<(), EncodeError>
Checks the options. Returns Ok(()) if all options are ok.
§Return
- EncodeError::PartNumberMissing
- EncodeError::PartBeginOffsetMissing
- EncodeError::PartEndOffsetMissing
- EncodeError::PartOffsetsInvalidRange
Sourcepub fn encode_stream<R, W>(
&self,
input: R,
output: W,
length: u64,
input_filename: &str,
) -> Result<(), EncodeError>
pub fn encode_stream<R, W>( &self, input: R, output: W, length: u64, input_filename: &str, ) -> Result<(), EncodeError>
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.