Skip to content

Commit eb9fff3

Browse files
committed
Add advance(by:) function to bit readers
1 parent 7a34de8 commit eb9fff3

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

Sources/LsbBitReader.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,17 @@ public final class LsbBitReader: ByteReader, BitReader {
4242
self.offset = byteReader.offset
4343
}
4444

45+
public func advance(by count: Int = 1) {
46+
for _ in 0..<count {
47+
if self.bitMask == 128 {
48+
self.offset += 1
49+
self.bitMask = 1
50+
} else {
51+
self.bitMask <<= 1
52+
}
53+
}
54+
}
55+
4556
/**
4657
Reads bit and returns it, advancing by one BIT position.
4758

Sources/MsbBitReader.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,17 @@ public final class MsbBitReader: ByteReader, BitReader {
4242
self.offset = byteReader.offset
4343
}
4444

45+
public func advance(by count: Int = 1) {
46+
for _ in 0..<count {
47+
if self.bitMask == 1 {
48+
self.offset += 1
49+
self.bitMask = 128
50+
} else {
51+
self.bitMask >>= 1
52+
}
53+
}
54+
}
55+
4556
/**
4657
Reads bit and returns it, advancing by one BIT position.
4758

0 commit comments

Comments
 (0)