zerobuf

package
v1.2.18 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

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 Kind added in v1.2.15

type Kind int
const (
	Default Kind = iota
	Tiny
	Small
	Medium
	Large
	ExtraLarge
)

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()
}

Pooler can use Free() by defer Pooler.Free()

type String

type String interface {
	Stringer
	Allocator
	Pooler
}

func Get

func Get(size ...Kind) String

type Stringer

type Stringer interface {
	Builder
	// Deprecated no-safe
	UnsafeString() string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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