package pool

import "go.uber.org/zap/internal/pool"

Package pool provides internal pool utilities.

Index

Types

type Pool

type Pool[T any] struct {
	// contains filtered or unexported fields
}

A Pool is a generic wrapper around sync.Pool to provide strongly-typed object pooling.

Note that SA6002 (ref: https://staticcheck.io/docs/checks/#SA6002) will not be detected, so all internal pool use must take care to only store pointer types.

func New

func New[T any](fn func() T) *Pool[T]

New returns a new Pool for T, and will use fn to construct new Ts when the pool is empty.

func (*Pool[T]) Get

func (p *Pool[T]) Get() T

Get gets a T from the pool, or creates a new one if the pool is empty.

func (*Pool[T]) Put

func (p *Pool[T]) Put(x T)

Put returns x into the pool.

Source Files

pool.go

Version
v1.27.0 (latest)
Published
Feb 20, 2024
Platform
linux/amd64
Imports
1 packages
Last checked
5 hours ago

Tools for package owners.