type GenerateOptions … type TableGenerator … type PrintHandler … type handlerEntry … type HumanReadableGenerator … var _ … var _ … // NewTableGenerator creates a HumanReadableGenerator suitable for calling GenerateTable(). func NewTableGenerator() *HumanReadableGenerator { … } // With method - accepts a list of builder functions that modify HumanReadableGenerator func (h *HumanReadableGenerator) With(fns ...func(PrintHandler)) *HumanReadableGenerator { … } // GenerateTable returns a table for the provided object, using the printer registered for that type. It returns // a table that includes all of the information requested by options, but will not remove rows or columns. The // caller is responsible for applying rules related to filtering rows or columns. func (h *HumanReadableGenerator) GenerateTable(obj runtime.Object, options GenerateOptions) (*metav1.Table, error) { … } // TableHandler adds a print handler with a given set of columns to HumanReadableGenerator instance. // See ValidateRowPrintHandlerFunc for required method signature. func (h *HumanReadableGenerator) TableHandler(columnDefinitions []metav1.TableColumnDefinition, printFunc interface{ … } // ValidateRowPrintHandlerFunc validates print handler signature. // printFunc is the function that will be called to print an object. // It must be of the following type: // // func printFunc(object ObjectType, options GenerateOptions) ([]metav1.TableRow, error) // // where ObjectType is the type of the object that will be printed, and the first // return value is an array of rows, with each row containing a number of cells that // match the number of columns defined for that printer function. func ValidateRowPrintHandlerFunc(printFunc reflect.Value) error { … }