summaryrefslogtreecommitdiff
path: root/internal/tui/flamegraph
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-12 23:16:46 +0300
committerPaul Buetow <paul@buetow.org>2026-05-12 23:16:46 +0300
commit119c679dd16d6a3c89b9d37665c44815956b6f82 (patch)
treecdff21d863f689b7fb0b350d448021fd3a2481be /internal/tui/flamegraph
parent0a342e08ebcc475524582260ab05841adf111596 (diff)
add compile-time interface satisfaction assertions for public types
Add var _ Interface = (*ConcreteType)(nil) assertions for: - *flamegraph.LiveTrie → runtime.{Snapshotter,Configurator,LiveTrieSource} and tui/flamegraph.{Snapshotter,Configurator,LiveTrieSource} - *probemanager.Manager → runtime.ProbeManager - *statsengine.Engine → runtime.SnapshotSource - *streamrow.RingBuffer → runtime.EventSink - *runtimeBindings (tui) → runtime.TraceRuntimeBindings - *lateBoundDashboardSource → dashboard.SnapshotSource - libbpfTracepointProgram/Module → probemanager.{Program,Attacher} Assertions are grouped close to their interface definitions to avoid introducing new import cycles (runtime already imports all affected packages; tui/flamegraph already imports coreflamegraph). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/tui/flamegraph')
-rw-r--r--internal/tui/flamegraph/model.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/internal/tui/flamegraph/model.go b/internal/tui/flamegraph/model.go
index 68ce7fd..73285f9 100644
--- a/internal/tui/flamegraph/model.go
+++ b/internal/tui/flamegraph/model.go
@@ -113,6 +113,19 @@ type LiveTrieSource interface {
Configurator
}
+// --- compile-time interface satisfaction assertions ---
+//
+// *coreflamegraph.LiveTrie is the sole production implementation of all three
+// trie interfaces. The assertions are placed here rather than in the
+// flamegraph package itself to avoid an import cycle: runtime imports
+// flamegraph, so flamegraph cannot import runtime. The tui/flamegraph package
+// already imports coreflamegraph, making it the natural home.
+var (
+ _ Snapshotter = (*coreflamegraph.LiveTrie)(nil)
+ _ Configurator = (*coreflamegraph.LiveTrie)(nil)
+ _ LiveTrieSource = (*coreflamegraph.LiveTrie)(nil)
+)
+
type zoomState struct {
path string
previousSelectedIdx int