Mercurial > yakumo_izuru > aya
comparison vendor/github.com/sirupsen/logrus/buffer_pool.go @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 package logrus | |
2 | |
3 import ( | |
4 "bytes" | |
5 "sync" | |
6 ) | |
7 | |
8 var ( | |
9 bufferPool BufferPool | |
10 ) | |
11 | |
12 type BufferPool interface { | |
13 Put(*bytes.Buffer) | |
14 Get() *bytes.Buffer | |
15 } | |
16 | |
17 type defaultPool struct { | |
18 pool *sync.Pool | |
19 } | |
20 | |
21 func (p *defaultPool) Put(buf *bytes.Buffer) { | |
22 p.pool.Put(buf) | |
23 } | |
24 | |
25 func (p *defaultPool) Get() *bytes.Buffer { | |
26 return p.pool.Get().(*bytes.Buffer) | |
27 } | |
28 | |
29 // SetBufferPool allows to replace the default logrus buffer pool | |
30 // to better meets the specific needs of an application. | |
31 func SetBufferPool(bp BufferPool) { | |
32 bufferPool = bp | |
33 } | |
34 | |
35 func init() { | |
36 SetBufferPool(&defaultPool{ | |
37 pool: &sync.Pool{ | |
38 New: func() interface{} { | |
39 return new(bytes.Buffer) | |
40 }, | |
41 }, | |
42 }) | |
43 } |