pub struct EncodeOptions { /* fields omitted */ }
Options for encoding.
The entry point for encoding a file (part)
to a file or (TCP) stream.
Constructs a new EncodeOptions with defaults
Sets the maximum line length.
Sets the number of parts (default=1).
When the number of parts is 1, no '=ypart' line will be written
in the ouput.
Sets the part number.
Only used when parts > 1
.
The part number count starts at 1.
Sets the begin (which is the file offset + 1).
Only used when parts > 1
.
The size of the part is end - begin + 1
.
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.
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()
.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);
- when the output file already exists
Checks the options. Returns Ok(()) if all options are ok.
- EncodeError::PartNumberMissing
- EncodeError::PartBeginOffsetMissing
- EncodeError::PartEndOffsetMissing
- EncodeError::PartOffsetsInvalidRange
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.
Formats the value using the given formatter. Read more
Constructs a new EncodeOptions instance, with the following defaults:
line_length = 128.
parts = 1,
part = begin = end = 0