feat: eventMeta -> event.IsEvent
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user