type TypeSetterPrinter … // NewTypeSetter constructs a wrapping printer with required params func NewTypeSetter(typer runtime.ObjectTyper) *TypeSetterPrinter { … } // PrintObj is an implementation of ResourcePrinter.PrintObj which sets type information on the obj for the duration // of printing. It is NOT threadsafe. func (p *TypeSetterPrinter) PrintObj(obj runtime.Object, w io.Writer) error { … } // ToPrinter returns a printer (not threadsafe!) that has been wrapped func (p *TypeSetterPrinter) ToPrinter(delegate ResourcePrinter) ResourcePrinter { … } // WrapToPrinter wraps the common ToPrinter method func (p *TypeSetterPrinter) WrapToPrinter(delegate ResourcePrinter, err error) (ResourcePrinter, error) { … }