pbuf

package
v0.0.0-...-3bb3583 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2025 License: AGPL-3.0 Imports: 6 Imported by: 7

Documentation

Overview

Package pbuf is a lightweight pooled buffer.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CountItems

func CountItems() (outside int32, inside int32)

CountItems see Pool.CountItems

func LimitInput

func LimitInput(n int32)

LimitInput see Pool.LimitInput

func LimitOutput

func LimitOutput(n int32)

LimitInput see Pool.LimitOutput

func SetNoPutBack

func SetNoPutBack(on bool)

SetNoPutBack see Pool.SetNoPutBack

func SetSyncItem

func SetSyncItem(on bool)

SetSyncItem see Pool.SetSyncItem

Types

type Buffer

type Buffer = UserBuffer[struct{}]

type BufferPool

type BufferPool[USRDAT any] struct {
	*orbyte.Pool[UserBuffer[USRDAT]]
}

func NewBufferPool

func NewBufferPool[USRDAT any]() BufferPool[USRDAT]

func (BufferPool[USRDAT]) InvolveBuffer

func (bufferPool BufferPool[USRDAT]) InvolveBuffer(
	buf *bytes.Buffer,
) *orbyte.Item[UserBuffer[USRDAT]]

InvolveBuffer involve external *bytes.Buffer into Item.

func (BufferPool[USRDAT]) InvolveBytes

func (bufferPool BufferPool[USRDAT]) InvolveBytes(p ...byte) (b UserBytes[USRDAT])

InvolveBytes involve outside buf into pool.

func (BufferPool[USRDAT]) NewBuffer

func (bufferPool BufferPool[USRDAT]) NewBuffer(
	buf []byte,
) *orbyte.Item[UserBuffer[USRDAT]]

NewBuffer wraps bytes.NewBuffer into Item.

func (BufferPool[USRDAT]) NewBytes

func (bufferPool BufferPool[USRDAT]) NewBytes(sz int) (b UserBytes[USRDAT])

NewBytes alloc sz bytes.

func (BufferPool[USRDAT]) NewLargeBytes

func (bufferPool BufferPool[USRDAT]) NewLargeBytes(sz int) (b UserBytes[USRDAT])

NewLargeBytes alloc sz bytes without involving.

func (BufferPool[USRDAT]) ParseBuffer

func (bufferPool BufferPool[USRDAT]) ParseBuffer(
	buf *bytes.Buffer,
) *orbyte.Item[UserBuffer[USRDAT]]

ParseBuffer convert external *bytes.Buffer into Item.

func (BufferPool[USRDAT]) ParseBytes

func (bufferPool BufferPool[USRDAT]) ParseBytes(p ...byte) (b UserBytes[USRDAT])

ParseBytes convert outside bytes to Bytes safely without adding it into pool.

type Bytes

type Bytes = UserBytes[struct{}]

func InvolveBytes

func InvolveBytes(b ...byte) Bytes

InvolveBytes involve outside buf into pool.

func NewBytes

func NewBytes(sz int) Bytes

NewBytes alloc sz bytes.

func NewLargeBytes

func NewLargeBytes(sz int) Bytes

NewBytes alloc sz bytes without involving.

func ParseBytes

func ParseBytes(b ...byte) Bytes

ParseBytes convert outside bytes to Bytes safely without adding it into pool.

type OBuffer

type OBuffer = orbyte.Item[Buffer]

func InvolveBuffer

func InvolveBuffer(buf *bytes.Buffer) *OBuffer

InvolveBuffer involve external *bytes.Buffer into Item.

func NewBuffer

func NewBuffer(buf []byte) *OBuffer

NewBuffer wraps bytes.NewBuffer into Item.

func ParseBuffer

func ParseBuffer(buf *bytes.Buffer) *OBuffer

ParseBuffer convert external *bytes.Buffer into Item.

type Pool

type Pool = BufferPool[struct{}]

func GetDefaultBufferPool

func GetDefaultBufferPool() Pool

GetDefaultBufferPool exposes inner bufferPool value.

type UserBuffer

type UserBuffer[USRDAT any] struct {
	DAT USRDAT
	bytes.Buffer
}

UserBuffer with customizable user data structure inside.

type UserBytes

type UserBytes[USRDAT any] struct {
	// contains filtered or unexported fields
}

UserBytes wrap pooled buffer into []byte while sharing the same pool.

func BufferItemToBytes

func BufferItemToBytes[USRDAT any](
	buf *orbyte.Item[UserBuffer[USRDAT]],
) (b UserBytes[USRDAT])

BufferItemToBytes convert between *Buffer and Bytes.

func (UserBytes[USRDAT]) B

func (b UserBytes[USRDAT]) B(f func([]byte, *USRDAT))

B directly use inner buf data and USRDAT safely.

func (UserBytes[USRDAT]) Cap

func (b UserBytes[USRDAT]) Cap() (c int)

Cap of slice.

func (UserBytes[USRDAT]) Copy

func (b UserBytes[USRDAT]) Copy() (cb UserBytes[USRDAT])

Copy please refer to Item.Copy().

func (UserBytes[USRDAT]) HasInit

func (b UserBytes[USRDAT]) HasInit() bool

HasInit whether this Bytes is made by pool or just declared.

func (UserBytes[USRDAT]) Ignore

func (b UserBytes[USRDAT]) Ignore() UserBytes[USRDAT]

Ignore refer to Item.Ignore

func (UserBytes[USRDAT]) Len

func (b UserBytes[USRDAT]) Len() int

Len of slice.

func (UserBytes[USRDAT]) ManualDestroy

func (b UserBytes[USRDAT]) ManualDestroy()

ManualDestroy please refer to Item.ManualDestroy().

func (UserBytes[USRDAT]) Slice

func (b UserBytes[USRDAT]) Slice(from, to int) UserBytes[USRDAT]

Slice dat[from:to] with Ref.

func (UserBytes[USRDAT]) SliceFrom

func (b UserBytes[USRDAT]) SliceFrom(from int) UserBytes[USRDAT]

SliceFrom dat[from:] with Ref.

func (UserBytes[USRDAT]) SliceTo

func (b UserBytes[USRDAT]) SliceTo(to int) UserBytes[USRDAT]

SliceTo dat[:to] with Ref.

func (UserBytes[USRDAT]) Trans

func (b UserBytes[USRDAT]) Trans() []byte

Trans please refer to Item.Trans().

func (UserBytes[USRDAT]) V

func (b UserBytes[USRDAT]) V(f func([]byte))

V use the inner value safely

Jump to

Keyboard shortcuts

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