From 7bece3bca97d6a2234d556ea329e029d82864683 Mon Sep 17 00:00:00 2001 From: Tnze Date: Mon, 12 Dec 2022 09:13:02 +0800 Subject: [PATCH] BitSet improvement --- net/packet/types.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/net/packet/types.go b/net/packet/types.go index 4053e09..f601a20 100644 --- a/net/packet/types.go +++ b/net/packet/types.go @@ -540,13 +540,17 @@ func (b BitSet) Set(index int, value bool) { } } +func (b BitSet) Len() int { + return len(b) * 64 +} + // NewFixedBitSet make a [FixedBitSet] which can store n bits at least. // If n <= 0, return nil func NewFixedBitSet(n int64) FixedBitSet { - if n <= 0 { + if n < 0 { return nil } - return make(FixedBitSet, (n-1)/8+1) + return make(FixedBitSet, (n+7)/8) } func (f FixedBitSet) WriteTo(w io.Writer) (n int64, err error) { @@ -570,3 +574,7 @@ func (f FixedBitSet) Set(index int, value bool) { f[index/8] &= ^(1 << (index % 8)) } } + +func (f FixedBitSet) Len() int { + return len(f) * 8 +}