File tree Expand file tree Collapse file tree 2 files changed +17
-0
lines changed
Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Original file line number Diff line number Diff line change 11package binary
22
33import (
4+ "bytes"
45 "encoding/binary"
56 "io"
67 "math"
@@ -45,6 +46,17 @@ func (b *Builder) ToBytes() (data []byte) {
4546 return
4647}
4748
49+ func (b * Builder ) Buffer () (buffer * bytes.Buffer ) {
50+ b .p (func (ub * pbuf.UserBuffer [teacfg ]) {
51+ buffer = & ub .Buffer
52+ })
53+ return
54+ }
55+
56+ func (b * Builder ) ManualDestroy () {
57+ (* orbyte.Item [pbuf.UserBuffer [teacfg ]])(b ).ManualDestroy ()
58+ }
59+
4860// Pack TLV with tea encryption if key is set
4961//
5062// GC 安全, 返回的数据在 Builder 被销毁之后仍能被正确读取,
Original file line number Diff line number Diff line change @@ -25,6 +25,11 @@ func NewBuilder(key ...byte) *Builder {
2525 return (* Builder )(b )
2626}
2727
28+ // PutBuilder
29+ func PutBuilder (b * Builder ) {
30+ b .ManualDestroy ()
31+ }
32+
2833var gzipPool = sync.Pool {
2934 New : func () any {
3035 buf := new (bytes.Buffer )
You can’t perform that action at this time.
0 commit comments