type decoratedWatcher … func newDecoratedWatcher(ctx context.Context, w watch.Interface, decorator func(runtime.Object)) *decoratedWatcher { … } // run decorates watch events from the underlying watcher until its result channel // is closed or the passed in context is done. // When run() returns, decoratedWatcher#resultCh is closed. func (d *decoratedWatcher) run(ctx context.Context) { … } func (d *decoratedWatcher) Stop() { … } func (d *decoratedWatcher) ResultChan() <-chan watch.Event { … }