Help us shape the future of Go! Take the 2026 Go Developer Survey

sr

package
v0.0.0-...-49b13b0 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

sender factory: JustValue

sender factory: LetError

sender factory: LetStoped

sender factory: LetValue

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChannelReceiver

type ChannelReceiver[T any] struct {
	ValueChan  chan T
	ErrorChan  chan error
	StopedChan chan struct{}
}

func (ChannelReceiver[T]) SetError

func (r ChannelReceiver[T]) SetError(err error)

func (ChannelReceiver[T]) SetStoped

func (r ChannelReceiver[T]) SetStoped()

func (ChannelReceiver[T]) SetValue

func (r ChannelReceiver[T]) SetValue(v T)

type FunctionReceiver

type FunctionReceiver[T any] struct {
	ValueFunc  func(T)
	ErrorFunc  func(error)
	StopedFunc func()
}

func (FunctionReceiver[T]) SetError

func (r FunctionReceiver[T]) SetError(err error)

func (FunctionReceiver[T]) SetStoped

func (r FunctionReceiver[T]) SetStoped()

func (FunctionReceiver[T]) SetValue

func (r FunctionReceiver[T]) SetValue(v T)

type OperationState

type OperationState interface {
	Start()
}

type Receiver

type Receiver[T any] interface {
	SetValue(T)
	SetError(err error)
	SetStoped()
}

type ReceiverOperation

type ReceiverOperation int
const (
	ReceiverOperationNone ReceiverOperation = iota
	ReceiverOperationHasValue
	ReceiverOperationHasError
	ReceiverOperationStoped
)

type ResultChannelReceiver

type ResultChannelReceiver[T any] chan<- mo.Result[T]

func (ResultChannelReceiver[T]) SetError

func (r ResultChannelReceiver[T]) SetError(err error)

func (ResultChannelReceiver[T]) SetStoped

func (r ResultChannelReceiver[T]) SetStoped()

func (ResultChannelReceiver[T]) SetValue

func (r ResultChannelReceiver[T]) SetValue(v T)

type Scheduler

type Scheduler[T any] interface {
	Schedule() Sender[T]
}

type Sender

type Sender[T any] interface {
	Tag() SenderTag
	Connect(Receiver[T]) OperationState
}

func FromChannel

func FromChannel[T any](ch <-chan T) Sender[T]

func FromDisposableChannel

func FromDisposableChannel[T any](ch <-chan T) Sender[T]

func FromDisposableResultChannel

func FromDisposableResultChannel[T any](ch <-chan mo.Result[T]) Sender[T]

func FromResultChannel

func FromResultChannel[T any](ch <-chan mo.Result[T]) Sender[T]

func Just

func Just[T any](v T) Sender[T]

func JustError

func JustError[T any](err error) Sender[T]

func JustStoped

func JustStoped[T any]() Sender[T]

func LetError

func LetError[T any](s Sender[T], f func(error, Receiver[T])) Sender[T]

func LetStoped

func LetStoped[T any](s Sender[T], f func(Receiver[T])) Sender[T]

func LetValue

func LetValue[T any, R any](s Sender[T], f func(T, Receiver[R])) Sender[R]

func Split

func Split[T any](s Sender[T]) Sender[T]

func StopedAsError

func StopedAsError[T any](s Sender[T], err error) Sender[T]

func Then

func Then[From any, To any](s Sender[From], f func(From) To) Sender[To]

func WhenAll2

func WhenAll2[T1, T2 any](s1 Sender[T1], s2 Sender[T2]) Sender[lo.Tuple2[T1, T2]]

func WhenAll3

func WhenAll3[T1, T2, T3 any](s1 Sender[T1], s2 Sender[T2], s3 Sender[T3]) Sender[lo.Tuple3[T1, T2, T3]]

func WhenAll4

func WhenAll4[T1, T2, T3, T4 any](s1 Sender[T1], s2 Sender[T2], s3 Sender[T3], s4 Sender[T4]) Sender[lo.Tuple4[T1, T2, T3, T4]]

func WhenAll5

func WhenAll5[T1, T2, T3, T4, T5 any](s1 Sender[T1], s2 Sender[T2], s3 Sender[T3], s4 Sender[T4], s5 Sender[T5]) Sender[lo.Tuple5[T1, T2, T3, T4, T5]]

func WhenAll6

func WhenAll6[T1, T2, T3, T4, T5, T6 any](s1 Sender[T1], s2 Sender[T2], s3 Sender[T3], s4 Sender[T4], s5 Sender[T5], s6 Sender[T6]) Sender[lo.Tuple6[T1, T2, T3, T4, T5, T6]]

func WhenAll7

func WhenAll7[T1, T2, T3, T4, T5, T6, T7 any](s1 Sender[T1], s2 Sender[T2], s3 Sender[T3], s4 Sender[T4], s5 Sender[T5], s6 Sender[T6], s7 Sender[T7]) Sender[lo.Tuple7[T1, T2, T3, T4, T5, T6, T7]]

func WhenAll8

func WhenAll8[T1, T2, T3, T4, T5, T6, T7, T8 any](s1 Sender[T1], s2 Sender[T2], s3 Sender[T3], s4 Sender[T4], s5 Sender[T5], s6 Sender[T6], s7 Sender[T7], s8 Sender[T8]) Sender[lo.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]

func WhenAll9

func WhenAll9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](s1 Sender[T1], s2 Sender[T2], s3 Sender[T3], s4 Sender[T4], s5 Sender[T5], s6 Sender[T6], s7 Sender[T7], s8 Sender[T8], s9 Sender[T9]) Sender[lo.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]

func WhenAllSlice

func WhenAllSlice[T any](ss ...Sender[T]) Sender[[]T]

type SenderTag

type SenderTag uint32
const (
	SenderTagNone      SenderTag = 0
	SenderTagMultiShot SenderTag = 1 << iota // If the tag has set, It can be Connect to multiple receiver.

)

type TrivalReceiver

type TrivalReceiver[T any] struct {
	Op     ReceiverOperation
	Value  T
	Error  error
	Stoped bool
}

func (*TrivalReceiver[T]) Forward

func (tr *TrivalReceiver[T]) Forward(r Receiver[T])

func (*TrivalReceiver[T]) SetError

func (tr *TrivalReceiver[T]) SetError(err error)

func (*TrivalReceiver[T]) SetStoped

func (tr *TrivalReceiver[T]) SetStoped()

func (*TrivalReceiver[T]) SetValue

func (tr *TrivalReceiver[T]) SetValue(v T)

Jump to

Keyboard shortcuts

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