zerobuf

package
v1.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2024 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Tiny = iota + 1
	Small
	Medium
	Large
	ExtraLarge
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Allocator

type Allocator interface {
	Grow(int)
}

type Builder

type Builder interface {
	WriteString(string) (int, error)
	WriteByte(byte) error
	Write([]byte) (int, error)
	Len() int
	Cap() int
	String() string
	Reset()
}

Builder compatible with bytes.Buffer compatible with strings.Builder compatible with "go.uber.org/zap/buffer".Buffer compatible with "github.com/dubbogo/gost/bytes".Buffer

type Byteser

type Byteser interface {
	Builder
	Bytes() []byte
}

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.

type Pooler

type Pooler interface {
	Free()
}

type String

type String interface {
	Stringer
	Allocator
	Pooler
}

func Get

func Get() String

type Stringer

type Stringer interface {
	Builder
	UnsafeString() string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL