classify

package module
v1.3.1 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2022 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CategoryHandler

type CategoryHandler[T any] func(item T) any

CategoryHandler 处理结构体字段的返回值

type CountHandler added in v1.1.0

type CountHandler[T any] func(counted T, item T)

type CreateCountedHandler added in v1.1.0

type CreateCountedHandler[T any] func(item T) T

type MethodType added in v1.2.0

type MethodType int

1 是字段( 2 是方法< 3 结尾收集@

const (
	MT_UNKNOWN MethodType = 0 // 0 未知
	MT_FIELD   MethodType = 1 // 1 字段 KEY a-zA-Z
	MT_METHOD  MethodType = 2 // 2 方法 函数 <>
	MT_COLLECT MethodType = 3 // 3 收集操作 @
)

type Streamer added in v1.1.0

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

Streamer 流计算. 用于分段时间聚合, 分类聚合...等

func NewStreamer added in v1.1.0

func NewStreamer[T any](mode string, handlers ...CategoryHandler[T]) *Streamer[T]

NewStreamer CreateCountedHandler CountHandler Add 都必须要使用地址传入

func (*Streamer[T]) Add added in v1.1.0

func (stream *Streamer[T]) Add(item T)

Add 添加到处理队列处理. 汇聚成counted. 通过 Seek RangeCounted获取结果

func (*Streamer[T]) AddCategory added in v1.1.0

func (stream *Streamer[T]) AddCategory(handler CategoryHandler[T]) *Streamer[T]

AddCategory 添加类别的处理方法

func (*Streamer[T]) Build added in v1.1.0

func (stream *Streamer[T]) Build(mode string, handlers ...CategoryHandler[T])

func (*Streamer[T]) RangeCounted added in v1.2.0

func (stream *Streamer[T]) RangeCounted(do func(counted T) bool)

RangeCounted 从小到大遍历 counted 对象

func (*Streamer[T]) Seek added in v1.2.0

func (stream *Streamer[T]) Seek(item T, iterfunc func(counted any) bool)

Seek 定位到 item 字节序列后的点. 然后从小到大遍历 [1 2 3] 参数为2 则 第一个item为2 [1 3] 参数为2 则 第一个item为3

func (*Streamer[T]) SeekReverse added in v1.2.0

func (stream *Streamer[T]) SeekReverse(item T, iterfunc func(counted interface{}) bool)

Seek 定位到 item 字节序列后的点. 然后从大到小遍历 [1 2 3] 参数为2 则 第一个item为2 [1 3] 参数为2 则 第一个item为1.

func (*Streamer[T]) SetCountHandler added in v1.1.0

func (stream *Streamer[T]) SetCountHandler(countHandler CountHandler[T]) *Streamer[T]

SetCountHandler 设置计算过程

func (*Streamer[T]) SetCreateCountedHandler added in v1.1.0

func (stream *Streamer[T]) SetCreateCountedHandler(createHandler CreateCountedHandler[T]) *Streamer[T]

SetCreateCountedHandler 设置被计算生成的对象 通过所有Add item汇聚成handler 返回的结果

Jump to

Keyboard shortcuts

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