diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-06 16:38:41 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-06 16:38:41 +0200 |
| commit | 1d72e80ed340564c6c2d37366e20896aa00341e2 (patch) | |
| tree | f59ece0abc4b8d7de77a8f8214e0c7392a6bf700 /internal/tui/eventstream | |
| parent | 91c0d807274defe2bc62db773f2ac0695dbb91c5 (diff) | |
refactor: use interfaces for TUI runtime binding sources (task 382)
Diffstat (limited to 'internal/tui/eventstream')
| -rw-r--r-- | internal/tui/eventstream/model.go | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/internal/tui/eventstream/model.go b/internal/tui/eventstream/model.go index 3e31203..12aff4d 100644 --- a/internal/tui/eventstream/model.go +++ b/internal/tui/eventstream/model.go @@ -24,8 +24,14 @@ const ( streamColumnCount ) +// Source is the minimal stream buffer contract needed by the stream model. +type Source interface { + Len() int + Snapshot() []StreamEvent +} + type Model struct { - source *RingBuffer + source Source allEvents []StreamEvent filtered []StreamEvent @@ -71,7 +77,7 @@ type fdTraceViewState struct { offset int } -func NewModel(source *RingBuffer) Model { +func NewModel(source Source) Model { m := Model{ source: source, filterModal: NewFilterModal(), @@ -122,7 +128,7 @@ func (m *Model) SetFooterVisible(visible bool) { } // SetSource updates the backing ring buffer and refreshes visible rows. -func (m *Model) SetSource(source *RingBuffer) { +func (m *Model) SetSource(source Source) { m.source = source m.Refresh() } |
