refactor(common): 重构 bitset 和 log 包

- 移除了 github.com/scylladb/termtables 依赖
- 修改了 bitset 包,移除了未使用的代码和测试
- 修改了 log 包,移除了未使用的代码和测试
- 更新了 go.work 文件,添加了 bitset 和 log 包
This commit is contained in:
2025-07-02 22:31:54 +08:00
parent 8fb792b0f2
commit ffc39f5462
42 changed files with 6445 additions and 32 deletions

View File

@@ -0,0 +1,68 @@
# bitset32
[![Test](https://github.com/bits-and-blooms/bitset/workflows/Test/badge.svg)](https://github.com/pointernil/bitset32/actions?query=workflow%3ATest)
[zh_CN 简体中文](./README_zh_CN.md)
## Description
Package bitset32 modified from `"github.com/bits-and-blooms/bitset"`
implements bitset with uint32. Both packages are used in the same way.
If not necessary, it is highly recommended to use
["github.com/bits-and-blooms/bitset"](https://github.com/bits-and-blooms/bitset).
## Go version
```
go version go1.19.4 windows/amd64
```
## Install
```
go get github.com/pointernil/bitset32
```
## Testing
```
go test
go test -cover
```
## Usage
```
package main
import (
"fmt"
"math/rand"
"github.com/pointernil/bitset32"
)
func main() {
fmt.Printf("Hello from BitSet!\n")
var b bitset32.BitSet32
// play some Go Fish
for i := 0; i < 100; i++ {
card1 := uint(rand.Intn(52))
card2 := uint(rand.Intn(52))
b.Set(card1)
if b.Test(card2) {
fmt.Println("Go Fish!")
}
b.Clear(card1)
}
// Chaining
b.Set(10).Set(11)
for i, e := b.NextSet(0); e; i, e = b.NextSet(i + 1) {
fmt.Println("The following bit is set:", i)
}
if b.Intersection(bitset32.New(100).Set(10)).Count() == 1 {
fmt.Println("Intersection works.")
} else {
fmt.Println("Intersection doesn't work???")
}
}
```