From b38d22f1bb11718f082c1d464ae7eae683293e0a Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 2 May 2024 11:56:45 +0200 Subject: [PATCH] add Track interface; remove adapter stuff --- storage/message/message.go | 6 +++--- storage/tracking/tracking.go | 24 +++++++++++++----------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/storage/message/message.go b/storage/message/message.go index 2e8add8..a965a38 100644 --- a/storage/message/message.go +++ b/storage/message/message.go @@ -10,7 +10,7 @@ type message struct { *tracking.BaseTrack } -func Message(tr *tracking.BaseTrack) tracking.Adapted { +func Message(tr *tracking.BaseTrack) *message { return &message{tr} } @@ -19,7 +19,7 @@ func MakeMessage(c *tracking.Container, h ...string) *tracking.BaseTrack { if h[0] == "" { h[0] = "scopes" } - return tracking.MakeTrack(c, h...).SetAdapterFactory(Message) + return tracking.MakeTrack(c, h...) } func (msg *message) Base() *tracking.BaseTrack { @@ -37,7 +37,7 @@ func Messages(db *sql.Storage) *tracking.Container { } func New(cont *tracking.Container, h ...string) *message { - return tracking.Adapt[*message](cont.NewTrack(h, nil)) + return Message(cont.NewTrack(h, nil)) } // message store action handler diff --git a/storage/tracking/tracking.go b/storage/tracking/tracking.go index 0dec71a..d8049a2 100644 --- a/storage/tracking/tracking.go +++ b/storage/tracking/tracking.go @@ -22,6 +22,19 @@ type ItemFactory func(*Container, ...string) *track type Adapted interface{} type AdapterFactory func(*track) Adapted +type Track interface { + TrackId() lib.Ident + Head() lib.StrMap + TimeStamp() *time.Time + Data() lib.Map + Container() *Container + Uid() string + SetHead(...string) + SetTimeStamp(*time.Time) + SetData(lib.Map) + Base() *BaseTrack +} + // basic track implementation type track struct { @@ -30,7 +43,6 @@ type track struct { timeStamp *time.Time data lib.Map container *Container - adapter AdapterFactory } type BaseTrack = track @@ -40,7 +52,6 @@ func MakeTrack(cont *Container, h ...string) *track { head: lib.StrMap{}, data: lib.Map{}, container: cont, - adapter: func(tr *track) Adapted { return tr }, } tr.SetHead(h...) return &tr @@ -117,15 +128,6 @@ func (tr *track) ScanP(rows *sql.Rows) error { return err } -func (tr *track) SetAdapterFactory(af AdapterFactory) *track { - tr.adapter = af - return tr -} - -func Adapt[T Adapted](tr *track) T { - return tr.adapter(tr).(T) -} - // basic container implementation type ContDef struct {