futures

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2024 License: MIT Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WrapResultFunc

func WrapResultFunc[R any](fn func() (R, error)) func() Result[R]

WrapResultFunc wrap function to return Result.

Types

type Future

type Future[R any] interface {
	Await() R
}

Future interface.

type GoFuture added in v0.11.5

type GoFuture[R any] struct {
	// contains filtered or unexported fields
}

GoFuture for futures executed in goroutine.

func GoResult added in v0.11.5

func GoResult[R any](fn func() (R, error)) *GoFuture[Result[R]]

GoResult for futures executed in goroutine.

func (*GoFuture[R]) Await added in v0.11.5

func (future *GoFuture[R]) Await() R

Await implements Future interface.

type NoopScheduler

type NoopScheduler[R any] struct{}

NoopScheduler execute scheduled task in-place.

func NewNoopScheduler

func NewNoopScheduler[R any]() NoopScheduler[R]

NewNoopScheduler constructor.

func (NoopScheduler[R]) Schedule

func (NoopScheduler[R]) Schedule(
	executable func() R,
) Future[R]

Schedule tasks.

type PoolScheduler

type PoolScheduler[R any] struct {
	// contains filtered or unexported fields
}

PoolScheduler for futures.

func NewWorkerPoolScheduler

func NewWorkerPoolScheduler[R any](
	config PoolSchedulerConfig,
) *PoolScheduler[R]

NewWorkerPoolScheduler constructor.

func ProvidePoolScheduler

func ProvidePoolScheduler[R any](
	config PoolSchedulerConfig,
) (*PoolScheduler[R], func())

ProvidePoolScheduler provider.

func (*PoolScheduler[R]) Schedule

func (scheduler *PoolScheduler[R]) Schedule(
	executable func() R,
) Future[R]

Schedule task. Implements Scheduler interface.

type PoolSchedulerConfig

type PoolSchedulerConfig struct {
	Workers int
}

PoolSchedulerConfig for PoolScheduler.

type Resolved

type Resolved[R any] struct {
	// contains filtered or unexported fields
}

Resolved future.

func NewResolved

func NewResolved[R any](value R) *Resolved[R]

NewResolved constructor.

func (*Resolved[R]) Await

func (future *Resolved[R]) Await() R

Await implements Future interface.

type Result

type Result[R any] struct {
	// contains filtered or unexported fields
}

Result container.

func FailureResult

func FailureResult[R any](err error) Result[R]

FailureResult constructor.

func NewResult

func NewResult[R any](value R, err error) Result[R]

NewResult constructor.

func SuccessResult

func SuccessResult[R any](value R) Result[R]

SuccessResult constructor.

func WrapResult added in v0.11.5

func WrapResult[R any](value R, err error) Result[R]

WrapResult wrap value and error.

func (Result[R]) Get

func (result Result[R]) Get() (R, error)

Get result value and error.

type Scheduled

type Scheduled[R any] struct {
	// contains filtered or unexported fields
}

Scheduled future.

func (*Scheduled[R]) Await

func (future *Scheduled[R]) Await() R

Await implements Future interface.

type Scheduler

type Scheduler[R any] interface {
	Schedule(func() R) Future[R]
}

Scheduler interface.

Jump to

Keyboard shortcuts

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