From 1a9236caad75b106e8525b9c0d964dc3c98fb578 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Wed, 4 Sep 2024 22:41:05 +0300 Subject: [PATCH] update meter options Signed-off-by: Vasiliy Tolstov --- logger/options.go | 7 +++++++ util/xpool/pool.go | 13 ++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/logger/options.go b/logger/options.go index a7008868..e1113daf 100644 --- a/logger/options.go +++ b/logger/options.go @@ -137,6 +137,13 @@ func WithName(n string) Option { } } +// WithMeter sets the meter +func WithMeter(m meter.Meter) Option { + return func(o *Options) { + o.Meter = m + } +} + // WithTimeFunc sets the func to obtain current time func WithTimeFunc(fn func() time.Time) Option { return func(o *Options) { diff --git a/util/xpool/pool.go b/util/xpool/pool.go index 1ffe4293..cfc8d5f0 100644 --- a/util/xpool/pool.go +++ b/util/xpool/pool.go @@ -1,6 +1,9 @@ package pool -import "sync" +import ( + "bytes" + "sync" +) type Pool[T any] struct { p *sync.Pool @@ -23,3 +26,11 @@ func (p Pool[T]) Get() T { func (p Pool[T]) Put(t T) { p.p.Put(t) } + +func NewBytePool(size int) Pool[T] { + return NewPool(func() []byte { return make([]byte, size) }) +} + +func NewBytesPool() Pool[T] { + return NewPool(func() *bytes.Buffer { return bytes.NewBuffer(nil) }) +}