src/zippy/bitstreams

Source   Edit  

Types

BitStreamReader = object
  src*: ptr UncheckedArray[uint8]
  len*, pos*: int
  when (defined(arm64) and defined(macosx)) or sizeof(int) == 4:
      bitBuffer*: uint32

  else:
      bitBuffer*: uint64

  bitsBuffered*: int
Source   Edit  
BitStreamWriter = object
  pos*, bitPos*: int
Source   Edit  

Procs

proc addBits(b: var BitStreamWriter; dst: var string; value: uint32; bitLen: int) {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc addBytes(b: var BitStreamWriter; dst: var string;
              src: ptr UncheckedArray[uint8]; srcPos, len: int) {.
    ...raises: [ZippyError], tags: [], forbids: [].}
Source   Edit  
proc fillBitBuffer(b: var BitStreamReader) {.inline, ...raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc readBits(b: var BitStreamReader; bits: int;
              fillBitBuffer: static[bool] = true): uint16 {.inline.}
Source   Edit  
proc readBytes(b: var BitStreamReader; dst: pointer; len: int) {.
    ...raises: [ZippyError], tags: [], forbids: [].}
Source   Edit  
proc skipRemainingBitsInCurrentByte(b: var BitStreamReader) {....raises: [],
    tags: [], forbids: [].}
Source   Edit  
proc skipRemainingBitsInCurrentByte(b: var BitStreamWriter) {....raises: [],
    tags: [], forbids: [].}
Source   Edit  

Templates

template failEndOfBuffer()
Source   Edit