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: *DecodeStatedest: *RingBuffersequence_size_limit: usizelast_sequence: bool

Possible Errors

BitStreamHasNoStartBit LiteralBitsError
EndOfStream
InvalidBitStream
MalformedFseBits
MalformedLiteralsLength DecodeLiteralsError
MalformedSequence
NotFound DecodeLiteralsError
UnexpectedEndOfLiteralStream LiteralBitsError

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; }