Versions in this module Expand all Collapse all v0 v0.1.2 Feb 10, 2025 Changes in this version type History + func (h History[E]) Size() uint v0.1.1 Feb 7, 2025 Changes in this version + const MaxSize type Subject + Err func() error v0.1.0 Feb 1, 2025 Changes in this version + var ErrEOT error = errors.New("end of the timeline has been reached") + var ErrEmptyStack error = errors.New("stack is empty") + var ErrSubject error = errors.New("detected subject to have an error") + func AsSeq[E Event](initFn InitFn[E]) iter.Seq2[Result[E], error] + func NewErrInvalidType(got any, want any) error + func Shadow[E Event](initFn InitFn[E], timeline []E) iter.Seq2[Subject[E], error] + func SubjectOf[S Subject[E], E Event](result Result[E]) (S, error) + type ErrInvalidType struct + Got any + Want any + func (e ErrInvalidType) Error() string + type Event interface + type History struct + func (h *History[E]) Restart() error + func (h *History[E]) WalkBackward() (E, error) + func (h *History[E]) WalkForward() (E, error) + func (h History[E]) AppendEvent(event E) History[E] + func (h History[E]) Arrow() uint + func (h History[E]) CurrentEvent() (E, bool) + func (h History[E]) Timeline() []E + type InitFn func() (Subject[E], error) + func New[S Subject[E], E Event](initFn func() (S, error)) InitFn[E] + type Result struct + Subject Subject[E] + Timeline []E + func Execute[E Event](e InitFn[E]) ([]Result[E], bool, error) + type Subject interface + ApplyEvent func(event E) error + HasError func() bool + NextEvents func() ([]E, error)