update selector

This commit is contained in:
ginuerzh
2022-09-04 13:22:34 +08:00
parent 7136710673
commit 99adf4bb06
5 changed files with 16 additions and 19 deletions

View File

@ -4,27 +4,24 @@ import (
"context"
"sync/atomic"
"time"
"github.com/go-gost/core/metadata"
)
type Selectable interface {
Marker() Marker
Metadata() metadata.Metadata
}
type Selector[T any] interface {
Select(context.Context, ...T) T
}
type Strategy[T Selectable] interface {
type Strategy[T any] interface {
Apply(context.Context, ...T) T
}
type Filter[T Selectable] interface {
type Filter[T any] interface {
Filter(context.Context, ...T) []T
}
type Markable interface {
Marker() Marker
}
type Marker interface {
Time() time.Time
Count() int64