Add bitseqs.bitsLen(openarray)
This commit is contained in:
parent
f5be0ab63a
commit
50562b515a
|
@ -24,13 +24,16 @@ type
|
||||||
BitArray*[bits: static int] = object
|
BitArray*[bits: static int] = object
|
||||||
bytes*: array[(bits + 7) div 8, byte]
|
bytes*: array[(bits + 7) div 8, byte]
|
||||||
|
|
||||||
func len*(s: BitSeq): int =
|
func bitsLen*(bytes: openarray[byte]): int =
|
||||||
let
|
let
|
||||||
bytesCount = s.Bytes.len
|
bytesCount = bytes.len
|
||||||
lastByte = s.Bytes[bytesCount - 1]
|
lastByte = bytes[bytesCount - 1]
|
||||||
markerPos = log2trunc(lastByte)
|
markerPos = log2trunc(lastByte)
|
||||||
|
|
||||||
Bytes(s).len * 8 - (8 - markerPos)
|
bytesCount * 8 - (8 - markerPos)
|
||||||
|
|
||||||
|
template len*(s: BitSeq): int =
|
||||||
|
bitsLen(Bytes s)
|
||||||
|
|
||||||
template len*(a: BitArray): int =
|
template len*(a: BitArray): int =
|
||||||
a.bits
|
a.bits
|
||||||
|
|
Loading…
Reference in New Issue