part

package
v0.28.20260417161007 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2026 License: MIT Imports: 6 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoSameBuf = errors.New("slices.HadModified.ErrNoSameBuf")
View Source
var ErrNoSameSliceIndex = errors.New("SliceIndex.HadModified.ErrNoSameSliceIndex")
View Source
var ErrOverLen = errors.New("slices.Remove.ErrOverLen")
View Source
var ErrOverMax = errors.New("slices.Append.ErrOverMax")

Functions

func AddBack added in v0.28.20240128081851

func AddBack[S ~[]T, T any](s *S, t *T)

func AddFront added in v0.28.20240128081851

func AddFront[S ~[]T, T any](s *S, t *T)

func Append added in v0.28.20251125193820

func Append[T any](s *[]T) *T

T是ptr时,使用AppendPtr

func AppendPtr added in v0.28.20251127090307

func AppendPtr[T any](s *[]*T) *T

func Del added in v0.28.20240617114802

func Del[S ~[]T, T any](s *S, f func(t *T) (del bool))

func DelBack added in v0.28.20240128081851

func DelBack[S ~[]T, T any](s *S, fromIndex int)

func DelFront added in v0.28.20240128081851

func DelFront[S ~[]T, T any](s *S, beforeIndex int)

func DelPtr added in v0.28.20251213174541

func DelPtr[S ~[]*T, T any](s *S, f func(t *T) (del bool))

func LoopAddBack added in v0.28.20250901144016

func LoopAddBack[S ~[]T, T any](s *S, t *T)

func LoopAddFront added in v0.28.20250901144016

func LoopAddFront[S ~[]T, T any](s *S, t *T)

func Range added in v0.28.20251123175803

func Range[T any](s []T) iter.Seq2[int, *T]

func Resize added in v0.28.20240616030125

func Resize[S ~[]T, T any](s *S, size int)
func Search[T any](s []T, okf func(*T) bool) (k int, t *T)

func Split added in v0.28.20260214003124

func Split[S ~[]T, T comparable](s S, sep S, callback func(s S) bool)

callback return false to break

func SplitAfter added in v0.28.20260214003124

func SplitAfter[S ~[]T, T comparable](s S, sep S, callback func(s S) bool)

callback return false to break

Types

type Buf added in v0.21.1

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

func New

func New[T any](maxsize ...int) *Buf[T]

normally, use GetLock() or GetRLock() in mutil goroutines

or use other export methods without lock

func (*Buf[T]) AddSize added in v0.28.20260212182730

func (t *Buf[T]) AddSize(n int)

unsafe without lock

func (*Buf[T]) Append added in v0.21.1

func (t *Buf[T]) Append(data []T) error

func (*Buf[T]) AppendTo added in v0.28.20240316105420

func (t *Buf[T]) AppendTo(to *Buf[T]) error

func (*Buf[T]) Appends added in v0.28.20250711174942

func (t *Buf[T]) Appends(f func(ba *BufAppendsI[T])) error

func (*Buf[T]) Cap added in v0.28.20250514163050

func (t *Buf[T]) Cap() int

func (*Buf[T]) Clear added in v0.21.1

func (t *Buf[T]) Clear()

func (*Buf[T]) ExpandCapTo added in v0.28.20250514163050

func (t *Buf[T]) ExpandCapTo(size int)

may alloc more mem

func (*Buf[T]) GetCopyBuf added in v0.21.1

func (t *Buf[T]) GetCopyBuf() (buf []T)

func (*Buf[T]) GetLock added in v0.28.20251015160112

func (t *Buf[T]) GetLock() (i interface {
	Unlock()
	BufLockMI[T]
})

func (*Buf[T]) GetModified added in v0.21.1

func (t *Buf[T]) GetModified() Modified

func (*Buf[T]) GetPureBuf added in v0.21.1

func (t *Buf[T]) GetPureBuf() (buf []T)

unsafe without lock

func (*Buf[T]) GetRLock added in v0.28.20260210191038

func (t *Buf[T]) GetRLock() (i interface {
	RUnlock()
	BufRLockMI[T]
})

func (*Buf[T]) GetRawBuf added in v0.28.20260212182730

func (t *Buf[T]) GetRawBuf(op, ed int) (buf []T)

unsafe without lock

func (*Buf[T]) HadModified added in v0.21.1

func (t *Buf[T]) HadModified(mt Modified) (modified bool, err error)

func (*Buf[T]) IsEmpty added in v0.21.1

func (t *Buf[T]) IsEmpty() bool

func (*Buf[T]) Read added in v0.28.20251017131127

func (t *Buf[T]) Read(b []T) (n int, e error)

func (*Buf[T]) ReadFrom added in v0.28.20260210191038

func (t *Buf[T]) ReadFrom(r interface {
	Read(p []T) (n int, err error)
}) (total int64, e error)

func (*Buf[T]) RemoveBack added in v0.21.1

func (t *Buf[T]) RemoveBack(n int) error

func (*Buf[T]) RemoveFront added in v0.21.1

func (t *Buf[T]) RemoveFront(n int) error

func (*Buf[T]) Reset added in v0.21.1

func (t *Buf[T]) Reset()

func (*Buf[T]) SetFrom added in v0.28.20240330140748

func (t *Buf[T]) SetFrom(data []T) error

func (*Buf[T]) SetModified added in v0.21.1

func (t *Buf[T]) SetModified()

unsafe without lock

func (*Buf[T]) SetSize added in v0.28.20260212182730

func (t *Buf[T]) SetSize(n int)

unsafe without lock

func (*Buf[T]) Size added in v0.21.1

func (t *Buf[T]) Size() int

func (*Buf[T]) Write added in v0.28.20251017131127

func (t *Buf[T]) Write(b []T) (n int, e error)

func (*Buf[T]) WriteTo added in v0.28.20260210191038

func (t *Buf[T]) WriteTo(w interface {
	Write(p []T) (n int, err error)
}) (total int64, e error)

type BufAppendsI added in v0.28.20250711174942

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

func (*BufAppendsI[T]) Append added in v0.28.20250711174942

func (t *BufAppendsI[T]) Append(data []T) *BufAppendsI[T]

type BufLockM added in v0.28.20251015160112

type BufLockM[T any] struct {
	*Buf[T]
}

func (*BufLockM[T]) Unlock added in v0.28.20251015160112

func (b *BufLockM[T]) Unlock()

type BufLockMI added in v0.28.20251015160112

type BufLockMI[T any] interface {
	Clear()
	Reset()
	ExpandCapTo(size int)
	Write(b []T) (n int, e error)
	ReadFrom(r interface {
		Read(p []T) (n int, err error)
	}) (int64, error)
	Append(data []T) error
	Appends(f func(ba *BufAppendsI[T])) error
	SetFrom(data []T) error
	RemoveFront(n int) error
	RemoveBack(n int) error
	SetModified()
	SetSize(int)
	BufRLockMI[T]
}

type BufRLockM added in v0.28.20260210191038

type BufRLockM[T any] struct {
	*Buf[T]
}

func (*BufRLockM[T]) RUnlock added in v0.28.20260210191038

func (b *BufRLockM[T]) RUnlock()

type BufRLockMI added in v0.28.20260210191038

type BufRLockMI[T any] interface {
	IsEmpty() bool
	Size() int
	Cap() int
	Read(b []T) (n int, e error)
	RemoveFront(int) error
	RemoveBack(int) error
	AppendTo(to *Buf[T]) error
	GetCopyBuf() []T
	GetPureBuf() []T          // unsafe
	GetRawBuf(op, ed int) []T // unsafe
	GetModified() Modified
	HadModified(mt Modified) (modified bool, err error)
}

type Modified

type Modified struct {
	// contains filtered or unexported fields
}

type SliceIndex added in v0.28.20250516172937

type SliceIndex[T comparable] struct {
	// contains filtered or unexported fields
}

func NewSliceIndex added in v0.28.20250516172937

func NewSliceIndex[T comparable](source []T) *SliceIndex[T]

func (*SliceIndex[T]) Append added in v0.28.20250516172937

func (t *SliceIndex[T]) Append(s, e int)

func (*SliceIndex[T]) Clear added in v0.28.20250516172937

func (t *SliceIndex[T]) Clear()

func (*SliceIndex[T]) Equal added in v0.28.20250516172937

func (t *SliceIndex[T]) Equal(b []T) bool

func (*SliceIndex[T]) GetModified added in v0.28.20250516172937

func (t *SliceIndex[T]) GetModified() SliceIndexModified

func (*SliceIndex[T]) HadModified added in v0.28.20250516172937

func (t *SliceIndex[T]) HadModified(mt SliceIndexModified) (modified bool, err error)

func (*SliceIndex[T]) IsEmpty added in v0.28.20250516172937

func (t *SliceIndex[T]) IsEmpty() bool

func (*SliceIndex[T]) Iter added in v0.28.20250516172937

func (t *SliceIndex[T]) Iter() iter.Seq2[int, T]

func (*SliceIndex[T]) Merge added in v0.28.20250516172937

func (t *SliceIndex[T]) Merge(s, e int)

func (*SliceIndex[T]) Read added in v0.28.20250516172937

func (t *SliceIndex[T]) Read(p []T) (n int, err error)

func (*SliceIndex[T]) RemoveBack added in v0.28.20250516172937

func (t *SliceIndex[T]) RemoveBack(n int)

func (*SliceIndex[T]) RemoveFront added in v0.28.20250516172937

func (t *SliceIndex[T]) RemoveFront(n int)

func (*SliceIndex[T]) Reset added in v0.28.20250516172937

func (t *SliceIndex[T]) Reset()

func (*SliceIndex[T]) Size added in v0.28.20250516172937

func (t *SliceIndex[T]) Size() (c int)

type SliceIndexModified added in v0.28.20250516172937

type SliceIndexModified struct {
	// contains filtered or unexported fields
}

type SliceIndexNoLock added in v0.28.20250516172937

type SliceIndexNoLock[T comparable] struct {
	// contains filtered or unexported fields
}

func NewSliceIndexNoLock added in v0.28.20250516172937

func NewSliceIndexNoLock[T comparable](source []T) *SliceIndexNoLock[T]

通过buf类似的操作方法,在现有buf上创建引用

func (*SliceIndexNoLock[T]) Append added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) Append(s, e int)

将source[s,e]附加到可读后

func (*SliceIndexNoLock[T]) Clear added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) Clear()

func (*SliceIndexNoLock[T]) Equal added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) Equal(b []T) bool

func (*SliceIndexNoLock[T]) FiliterAppend added in v0.28.20260323003954

func (t *SliceIndexNoLock[T]) FiliterAppend(s, e int, f func(*T) (pass bool))

func (*SliceIndexNoLock[T]) GetModified added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) GetModified() SliceIndexModified

func (*SliceIndexNoLock[T]) HadModified added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) HadModified(mt SliceIndexModified) (modified bool, err error)

func (*SliceIndexNoLock[T]) IsEmpty added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) IsEmpty() bool

func (*SliceIndexNoLock[T]) Iter added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) Iter() iter.Seq2[int, T]

func (*SliceIndexNoLock[T]) Merge added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) Merge(s, e int)

将source[s,e]合并到可读中

func (*SliceIndexNoLock[T]) Read added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) Read(p []T) (n int, err error)

func (*SliceIndexNoLock[T]) RemoveBack added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) RemoveBack(n int)

func (*SliceIndexNoLock[T]) RemoveFront added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) RemoveFront(n int)

func (*SliceIndexNoLock[T]) Reset added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) Reset()

func (*SliceIndexNoLock[T]) Size added in v0.28.20250516172937

func (t *SliceIndexNoLock[T]) Size() (c int)

func (*SliceIndexNoLock[T]) WriteTo added in v0.28.20260129180143

func (t *SliceIndexNoLock[T]) WriteTo(w interface {
	Write(p []T) (n int, err error)
}) (n int64, err error)

Jump to

Keyboard shortcuts

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