Documentation
¶
Index ¶
- Variables
- func After[T any, F ft[T]](done <-chan T, f F, cBreaks ...<-chan struct{})
- func Array[T any](s ...T) []T
- func BackExec(exec func(), onDone ...func()) <-chan struct{}
- func BackQueue(rollback *func(), autoRunIfErr *error) (q funcQueue)
- func BackwardRun(fs ...func())
- func CSelect[T any](cSelect <-chan T, cBreaks ...<-chan struct{}) (v T, ok, breaked bool)
- func CompactUniq[Slice ~[]T, T comparable](s Slice, inplace ...bool) Slice
- func Conv[Slice ~[]T, T any](s Slice, cleanFn func(T) T, inplace ...bool) (result Slice)
- func Eol[T any](_ T, err error) error
- func Eon[T any, E any](v T, _ E) T
- func First[T any](v []T) T
- func FirstOr[T any](v []T, def ...T) T
- func Flat[T any](s [][]T) []T
- func HasPrefix(s, prefix string, ignoreCase ...bool) bool
- func HumanBytes[T UintT | IntT](n T, prec ...int) string
- func Iif[T any](c bool, t, f T) T
- func LineSeq(r io.Reader) iter.Seq[string]
- func LineWalk(r io.Reader, f func(s string))
- func LineWriter(lineRead func(line string)) io.WriteCloser
- func LogStd(w io.Writer) *log.Logger
- func Map[T, R any](s []T, conv func(T, int) R) []R
- func PasswordMask(s string) string
- func RandText(n int) (s string)
- func Reduce[T, R any](s []T, walk func(agg R, item T, i int) R, init R) R
- func ReduceSeq[T, R any](seq iter.Seq[T], walk func(agg R, item T) R, init R) R
- func ReduceSeq2[T, R any](seq iter.Seq2[int, T], walk func(agg R, item T, index int) R, init R) R
- func Replace[Slice ~[]T, T any](s Slice, replaceFn func(T) (T, error)) (result Slice, err error)
- func Run(fs ...func())
- func SelectDo[T any](cSelect <-chan T, f func(T, bool), cBreaks ...<-chan struct{}) (breaked bool)
- func Sleep(d time.Duration, cBreaks ...<-chan struct{}) (breaked bool)
- func StrParser[R UintT | IntT, T1, T2 any, R64 uint64 | int64](f func(string, T1, T2) (R64, error), t1 T1, t2 T2) func(string) (R, error)
- func String[T IntT | UintT](v T) string
- type IntT
- type UintT
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ParseUint = StrParser[uint](strconv.ParseUint, 0, 64) ParseUint8 = StrParser[uint8](strconv.ParseUint, 0, 8) ParseUint16 = StrParser[uint16](strconv.ParseUint, 0, 16) ParseUint32 = StrParser[uint32](strconv.ParseUint, 0, 32) ParseUint64 = StrParser[uint64](strconv.ParseUint, 0, 64) ParseInt = StrParser[int](strconv.ParseInt, 0, 64) ParseInt8 = StrParser[int8](strconv.ParseInt, 0, 8) ParseInt16 = StrParser[int16](strconv.ParseInt, 0, 16) ParseInt32 = StrParser[int32](strconv.ParseInt, 0, 32) ParseInt64 = StrParser[int64](strconv.ParseInt, 0, 64) )
Functions ¶
func After ¶
func After[T any, F ft[T]](done <-chan T, f F, cBreaks ...<-chan struct{})
After do when done is closed (unblocked)
func BackQueue ¶
func BackQueue(rollback *func(), autoRunIfErr *error) (q funcQueue)
BackQueue 先进后出的回滚函数队列
- rollback: 这是返回参数,回滚方法。
- autoRunIfErr: 这是传入参数,在 `defer fq.ErrDefer()` 中判断*error不为空则自动执行回滚
func BackwardRun ¶
func BackwardRun(fs ...func())
func CSelect ¶
SelectOnce select `cSelect` chan, return it (blocked)
v: if recv from cSelect ok: if cSelect is not closed breaked: if recv from cBreaks or any cBreaks is closed...
like:
select{
case <- cBreaks[...]:
v = nil, ok = false, breaked = true
case v, ok:= cSelect:
v = v, ok = ok, breaked = false
}
func CompactUniq ¶
func CompactUniq[Slice ~[]T, T comparable](s Slice, inplace ...bool) Slice
func LineWriter ¶
func LineWriter(lineRead func(line string)) io.WriteCloser
func PasswordMask ¶
func ReduceSeq2 ¶
Types ¶
Click to show internal directories.
Click to hide internal directories.