feat: eventMeta -> event.IsEvent

This commit is contained in:
Jon Lundy
2023-04-02 16:45:17 -06:00
parent 6ee995298b
commit 9168f5c7bc
16 changed files with 186 additions and 290 deletions

View File

@@ -33,24 +33,11 @@ func (a *Agg) ApplyEvent(lis ...event.Event) {
type ValueApplied struct {
Value string
eventMeta event.Meta
event.IsEvent
}
var _ event.Event = (*ValueApplied)(nil)
func (e *ValueApplied) EventMeta() event.Meta {
if e == nil {
return event.Meta{}
}
return e.eventMeta
}
func (e *ValueApplied) SetEventMeta(m event.Meta) {
if e != nil {
e.eventMeta = m
}
}
func (e *ValueApplied) MarshalBinary() ([]byte, error) {
return json.Marshal(e)
}

View File

@@ -5,7 +5,6 @@ import (
"context"
"crypto/rand"
"encoding"
"encoding/json"
"fmt"
"io"
"strconv"
@@ -156,25 +155,23 @@ func Init(ctx context.Context) error {
}
type nilEvent struct {
IsEvent
}
func (*nilEvent) EventMeta() Meta { return Meta{} }
func (*nilEvent) SetEventMeta(eventMeta Meta) {}
var NilEvent = &nilEvent{}
func (e *nilEvent) MarshalBinary() ([]byte, error) {
return json.Marshal(e)
return nil, nil
}
func (e *nilEvent) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, e)
return nil
}
type EventPtr struct {
StreamID string `json:"stream_id"`
Pos uint64 `json:"pos"`
eventMeta Meta
IsEvent
}
var _ Event = (*EventPtr)(nil)
@@ -202,22 +199,6 @@ func (e *EventPtr) UnmarshalBinary(data []byte) error {
return err
}
// EventMeta implements Event
func (e *EventPtr) EventMeta() Meta {
if e == nil {
return Meta{}
}
return e.eventMeta
}
// SetEventMeta implements Event
func (e *EventPtr) SetEventMeta(m Meta) {
if e == nil {
return
}
e.eventMeta = m
}
func (e *EventPtr) Values() any {
return struct {
StreamID string `json:"stream_id"`
@@ -229,26 +210,30 @@ func (e *EventPtr) Values() any {
}
type FeedTruncated struct {
eventMeta Meta
}
// EventMeta implements Event
func (e *FeedTruncated) EventMeta() Meta {
if e == nil {
return Meta{}
}
return e.eventMeta
}
// SetEventMeta implements Event
func (e *FeedTruncated) SetEventMeta(m Meta) {
if e == nil {
return
}
e.eventMeta = m
IsEvent
}
func (e *FeedTruncated) Values() any {
return struct {
}{}
}
type property[T any] struct {
v T
}
type IsEvent = property[Meta]
func (p *property[T]) EventMeta() T {
if p == nil {
var t T
return t
}
return p.v
}
func (p *property[T]) SetEventMeta(x T) {
if p != nil {
p.v = x
}
}

View File

@@ -14,21 +14,9 @@ import (
type DummyEvent struct {
Value string
eventMeta event.Meta
event.IsEvent
}
func (e *DummyEvent) EventMeta() event.Meta {
if e == nil {
return event.Meta{}
}
return e.eventMeta
}
func (e *DummyEvent) SetEventMeta(eventMeta event.Meta) {
if e == nil {
return
}
e.eventMeta = eventMeta
}
func (e *DummyEvent) MarshalBinary() ([]byte, error) {
return json.Marshal(e)
}

View File

@@ -25,7 +25,7 @@ type UnknownEvent struct {
eventType string
values map[string]json.RawMessage
eventMeta Meta
IsEvent
}
var _ Event = (*UnknownEvent)(nil)
@@ -48,16 +48,16 @@ func NewUnknownEventFromValues(eventType string, meta Meta, values url.Values) *
}
}
return &UnknownEvent{eventType: eventType, eventMeta: meta, values: jsonValues}
e := &UnknownEvent{eventType: eventType, values: jsonValues}
e.SetEventMeta(meta)
return e
}
func NewUnknownEventFromRaw(eventType string, meta Meta, values map[string]json.RawMessage) *UnknownEvent {
return &UnknownEvent{eventType: eventType, eventMeta: meta, values: values}
e := &UnknownEvent{eventType: eventType, values: values}
e.SetEventMeta(meta)
return e
}
func (u UnknownEvent) EventMeta() Meta { return u.eventMeta }
func (u UnknownEvent) EventType() string { return u.eventType }
func (u *UnknownEvent) SetEventMeta(em Meta) {
u.eventMeta = em
}
func (u *UnknownEvent) UnmarshalBinary(b []byte) error {
return json.Unmarshal(b, &u.values)
}