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.