summaryrefslogtreecommitdiff
path: root/internal/tui/eventstream
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-06 16:38:41 +0200
committerPaul Buetow <paul@buetow.org>2026-03-06 16:38:41 +0200
commit1d72e80ed340564c6c2d37366e20896aa00341e2 (patch)
treef59ece0abc4b8d7de77a8f8214e0c7392a6bf700 /internal/tui/eventstream
parent91c0d807274defe2bc62db773f2ac0695dbb91c5 (diff)
refactor: use interfaces for TUI runtime binding sources (task 382)
Diffstat (limited to 'internal/tui/eventstream')
-rw-r--r--internal/tui/eventstream/model.go12
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()
}