Function decodeSequenceRingBuffer [src]
Decode one sequence from bit_reader into dest; see
decodeSequenceSlice.
Prototype
pub fn decodeSequenceRingBuffer( self: *DecodeState, dest: *RingBuffer, bit_reader: anytype, sequence_size_limit: usize, last_sequence: bool, ) DecodeSequenceError!usize
Parameters
self: *DecodeState
dest: *RingBuffer
sequence_size_limit: usize
last_sequence: bool
Possible Errors
Source
pub fn decodeSequenceRingBuffer(
self: *DecodeState,
dest: *RingBuffer,
bit_reader: anytype,
sequence_size_limit: usize,
last_sequence: bool,
) DecodeSequenceError!usize {
const sequence = try self.nextSequence(bit_reader);
const sequence_length = @as(usize, sequence.literal_length) + sequence.match_length;
if (sequence_length > sequence_size_limit) return error.MalformedSequence;
try self.executeSequenceRingBuffer(dest, sequence);
if (!last_sequence) {
try self.updateState(.literal, bit_reader);
try self.updateState(.match, bit_reader);
try self.updateState(.offset, bit_reader);
}
return sequence_length;
}