Documentation
¶
Index ¶
- func BytesHandler(data []byte, chunkSize int64, sep []byte, emitFunc func([]byte)) []byte
- func NewChunkChannelFromFilename(ctx context.Context, filename string) *chanx.UnlimitedChan[Chunk]
- func NewChunkChannelFromReader(ctx context.Context, r io.ReadCloser) *chanx.UnlimitedChan[Chunk]
- func RuneHandler(data []rune, chunkSize int64, sep []rune, emitFunc func([]rune)) []rune
- type BufferChunk
- func (c *BufferChunk) BytesSize() int64
- func (c *BufferChunk) Data() []byte
- func (c *BufferChunk) Dump() string
- func (c *BufferChunk) DumpWithOverlap(i int) string
- func (c *BufferChunk) FlushAllChunkSizeTo(dst *chanx.UnlimitedChan[Chunk], chunkSize int64, sep string, ...)
- func (c *BufferChunk) FlushFullChunkSizeTo(dst *chanx.UnlimitedChan[Chunk], chunkSize int64, sep string)
- func (c *BufferChunk) HaveLastChunk() bool
- func (c *BufferChunk) IsTheLastChunk() bool
- func (c *BufferChunk) IsUTF8() bool
- func (c *BufferChunk) LastChunk() Chunk
- func (c *BufferChunk) MIMEType() *mimetype.MIME
- func (c *BufferChunk) PrevNBytes(n int) []byte
- func (c *BufferChunk) PrevNBytesUntil(sep []byte, n int) ([]byte, bool)
- func (c *BufferChunk) RunesSize() int64
- func (c *BufferChunk) SetIsTheLastChunk(isLast bool)
- func (c *BufferChunk) SetPreviousChunk(prev Chunk)
- func (c *BufferChunk) VerboseMessage() string
- func (c *BufferChunk) Write(i []byte)
- type Chunk
- type ChunkMaker
- type Config
- type MergerChunkMaker
- type Option
- type SimpleChunkMaker
- func NewImageChunkMakerFromFile(targetFile string, opts ...Option) (*SimpleChunkMaker, error)
- func NewImageChunkMakerFromFileEx(targetFile string, cfg *Config) (*SimpleChunkMaker, error)
- func NewSimpleChunkMaker[T any](src <-chan T, handle func(T) Chunk, opts ...Option) (*SimpleChunkMaker, error)
- func NewSimpleStringerChunkMaker(src chan fmt.Stringer, opts ...Option) (*SimpleChunkMaker, error)
- type SimpleChunkWriter
- type TextChunkMaker
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BytesHandler ¶
func NewChunkChannelFromReader ¶
func NewChunkChannelFromReader(ctx context.Context, r io.ReadCloser) *chanx.UnlimitedChan[Chunk]
Types ¶
type BufferChunk ¶
type BufferChunk struct {
// contains filtered or unexported fields
}
func NewBufferChunk ¶
func NewBufferChunk(buffer []byte) *BufferChunk
func NewBufferChunkEx ¶
func NewBufferChunkEx(buffer []byte, mimeType *mimetype.MIME, verbose string) *BufferChunk
func (*BufferChunk) BytesSize ¶
func (c *BufferChunk) BytesSize() int64
func (*BufferChunk) Data ¶
func (c *BufferChunk) Data() []byte
func (*BufferChunk) Dump ¶
func (c *BufferChunk) Dump() string
func (*BufferChunk) DumpWithOverlap ¶
func (c *BufferChunk) DumpWithOverlap(i int) string
func (*BufferChunk) FlushAllChunkSizeTo ¶
func (c *BufferChunk) FlushAllChunkSizeTo(dst *chanx.UnlimitedChan[Chunk], chunkSize int64, sep string, haveTheLastChunk bool)
func (*BufferChunk) FlushFullChunkSizeTo ¶
func (c *BufferChunk) FlushFullChunkSizeTo(dst *chanx.UnlimitedChan[Chunk], chunkSize int64, sep string)
func (*BufferChunk) HaveLastChunk ¶
func (c *BufferChunk) HaveLastChunk() bool
func (*BufferChunk) IsTheLastChunk ¶
func (c *BufferChunk) IsTheLastChunk() bool
func (*BufferChunk) IsUTF8 ¶
func (c *BufferChunk) IsUTF8() bool
func (*BufferChunk) LastChunk ¶
func (c *BufferChunk) LastChunk() Chunk
func (*BufferChunk) MIMEType ¶
func (c *BufferChunk) MIMEType() *mimetype.MIME
func (*BufferChunk) PrevNBytes ¶
func (c *BufferChunk) PrevNBytes(n int) []byte
PrevNBytes collects N bytes by traversing the prev chain, excluding the current chunk's data.
func (*BufferChunk) PrevNBytesUntil ¶
func (c *BufferChunk) PrevNBytesUntil(sep []byte, n int) ([]byte, bool)
func (*BufferChunk) RunesSize ¶
func (c *BufferChunk) RunesSize() int64
func (*BufferChunk) SetIsTheLastChunk ¶
func (c *BufferChunk) SetIsTheLastChunk(isLast bool)
func (*BufferChunk) SetPreviousChunk ¶
func (c *BufferChunk) SetPreviousChunk(prev Chunk)
func (*BufferChunk) VerboseMessage ¶
func (c *BufferChunk) VerboseMessage() string
func (*BufferChunk) Write ¶
func (c *BufferChunk) Write(i []byte)
type Chunk ¶
type Chunk interface {
IsUTF8() bool
Data() []byte
Dump() string
DumpWithOverlap(i int) string
BytesSize() int64
RunesSize() int64
HaveLastChunk() bool
LastChunk() Chunk
PrevNBytes(n int) []byte
PrevNBytesUntil(sep []byte, n int) ([]byte, bool)
MIMEType() *mimetype.MIME
IsTheLastChunk() bool // 是否是最后一个 chunk
SetIsTheLastChunk(bool)
VerboseMessage() string
SetPreviousChunk(Chunk)
}
type ChunkMaker ¶
func NewChunkMakerFromFile ¶
func NewChunkMakerFromFile(targetFile string, opts ...Option) (ChunkMaker, error)
func NewChunkMakerFromPath ¶
func NewChunkMakerFromPath(targetPath string, opts ...Option) (ChunkMaker, error)
type MergerChunkMaker ¶
type MergerChunkMaker struct {
// contains filtered or unexported fields
}
func NewMergerChunkMaker ¶
func NewMergerChunkMaker(ctx context.Context) *MergerChunkMaker
func (*MergerChunkMaker) AddInput ¶
func (m *MergerChunkMaker) AddInput(input <-chan Chunk)
func (*MergerChunkMaker) Close ¶
func (m *MergerChunkMaker) Close() error
func (*MergerChunkMaker) OutputChannel ¶
func (m *MergerChunkMaker) OutputChannel() <-chan Chunk
type Option ¶
type Option func(c *Config)
func WithChunkSize ¶
func WithSeparatorTrigger ¶
func WithTimeTrigger ¶
func WithTimeTriggerSeconds ¶
type SimpleChunkMaker ¶
type SimpleChunkMaker struct {
// contains filtered or unexported fields
}
func NewImageChunkMakerFromFile ¶
func NewImageChunkMakerFromFile(targetFile string, opts ...Option) (*SimpleChunkMaker, error)
func NewImageChunkMakerFromFileEx ¶
func NewImageChunkMakerFromFileEx(targetFile string, cfg *Config) (*SimpleChunkMaker, error)
func NewSimpleChunkMaker ¶
func NewSimpleChunkMaker[T any](src <-chan T, handle func(T) Chunk, opts ...Option) (*SimpleChunkMaker, error)
func NewSimpleStringerChunkMaker ¶
func NewSimpleStringerChunkMaker(src chan fmt.Stringer, opts ...Option) (*SimpleChunkMaker, error)
NewSimpleStringerChunkMaker NewSimpleChunkMakerEx creates a SimpleChunkMaker from an input channel of fmt.Stringer. It reads from the input channel, converts each fmt.Stringer to a BufferChunk, is Simple , config chunk size or separator is not used.
func (*SimpleChunkMaker) Close ¶
func (i *SimpleChunkMaker) Close() error
func (*SimpleChunkMaker) OutputChannel ¶
func (i *SimpleChunkMaker) OutputChannel() <-chan Chunk
type SimpleChunkWriter ¶
type SimpleChunkWriter struct {
// contains filtered or unexported fields
}
func NewSimpleChunkWriter ¶
func NewSimpleChunkWriter(dst *chanx.UnlimitedChan[Chunk]) *SimpleChunkWriter
func (*SimpleChunkWriter) Close ¶
func (w *SimpleChunkWriter) Close() error
type TextChunkMaker ¶
type TextChunkMaker struct {
// contains filtered or unexported fields
}
func NewTextChunkMaker ¶
func NewTextChunkMaker(dst io.Reader, opts ...Option) (*TextChunkMaker, error)
func NewTextChunkMakerEx ¶
func NewTextChunkMakerEx( input *chanx.UnlimitedChan[Chunk], c *Config, ) (*TextChunkMaker, error)
func (*TextChunkMaker) Close ¶
func (cm *TextChunkMaker) Close() error
func (*TextChunkMaker) OutputChannel ¶
func (cm *TextChunkMaker) OutputChannel() <-chan Chunk
Click to show internal directories.
Click to hide internal directories.