k9s/internal/model/types.go

40 lines
597 B
Go

package model
import (
"context"
"github.com/derailed/tview"
)
// Igniter represents a runnable view.
type Igniter interface {
// Start starts a component.
Init(ctx context.Context)
// Start starts a component.
Start()
// Stop terminates a component.
Stop()
}
// Hinter represent a menu mnemonic provider.
type Hinter interface {
Hints() MenuHints
}
// Primitive represents a UI primitive.
type Primitive interface {
tview.Primitive
// Name returns the view name.
Name() string
}
// Component represents a ui component
type Component interface {
Primitive
Igniter
Hinter
}