behavior

package
v0.2.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SortBehaviorsByPriority

func SortBehaviorsByPriority(behaviors []Behavior) [][]Behavior

Types

type Behavior

type Behavior interface {
	Name() string
	ReceiverType() reflect.Type
	Priority() int // a lower number means a higher priority
	Call(reciever any, args ...any) []any
	Equal(Behavior) bool
}

type BehaviorParser

type BehaviorParser interface {
	ParseBehavior(method reflect.Method) (Behavior, bool)
}

func MakeDefaultBehaviorParser

func MakeDefaultBehaviorParser() BehaviorParser

type BehaviorRepository

type BehaviorRepository interface {
	AddBehavior(Behavior)
	AddBehaviorByType(reflect.Type)
	RemoveBehavior(Behavior)
	RemoveBehaviorByType(reflect.Type)
	GetSortedBehaviors() [][]Behavior
}

func MakeDefaultBehaviorRepository

func MakeDefaultBehaviorRepository() BehaviorRepository

func MakeDefaultBehaviorRepositoryWithParams

func MakeDefaultBehaviorRepositoryWithParams(bp BehaviorParser) BehaviorRepository

Jump to

Keyboard shortcuts

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