// SPDX-License-Identifier: Apache-2.0 // Copyright Authors of K9s package model1 import ( "context" "github.com/derailed/k9s/internal/config" "github.com/derailed/tcell/v2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) const ( NAValue = "na" // EventUnchanged notifies listener resource has not changed. EventUnchanged ResEvent = 1 << iota // EventAdd notifies listener of a resource was added. EventAdd // EventUpdate notifies listener of a resource updated. EventUpdate // EventDelete notifies listener of a resource was deleted. EventDelete // EventClear the stack was reset. EventClear ) // DecoratorFunc decorates a string. type DecoratorFunc func(string) string // ColorerFunc represents a resource row colorer. type ColorerFunc func(ns string, h Header, re *RowEvent) tcell.Color // Renderer represents a resource renderer. type Renderer interface { // IsGeneric identifies a generic handler. IsGeneric() bool // Render converts raw resources to tabular data. Render(o any, ns string, row *Row) error // Header returns the resource header. Header(ns string) Header // ColorerFunc returns a row colorer function. ColorerFunc() ColorerFunc // SetViewSetting sets custom view settings if any. SetViewSetting(vs *config.ViewSetting) // Healthy checks if the resource is healthy. Healthy(ctx context.Context, o any) error } // Generic represents a generic resource. type Generic interface { // SetTable sets up the resource tabular definition. SetTable(ns string, table *metav1.Table) // Header returns a resource header. Header(ns string) Header // Render renders the resource. Render(o any, ns string, row *Row) error }