@@ -232,3 +232,63 @@ func ExactNamePredicate(name, namespace string) predicate.Predicate {
232232		return  obj .GetName () ==  name  &&  (namespace  ==  "*"  ||  obj .GetNamespace () ==  namespace )
233233	})
234234}
235+ 
236+ ///////////////////////////// 
237+ /// EVENT TYPE PREDICATES /// 
238+ ///////////////////////////// 
239+ 
240+ type  EventType  string 
241+ 
242+ const  (
243+ 	CreateEvent   EventType  =  "create" 
244+ 	UpdateEvent   EventType  =  "update" 
245+ 	DeleteEvent   EventType  =  "delete" 
246+ 	GenericEvent  EventType  =  "generic" 
247+ )
248+ 
249+ type  eventTypePredicate  struct  {
250+ 	eventType  EventType 
251+ }
252+ 
253+ var  _  predicate.Predicate  =  eventTypePredicate {}
254+ 
255+ func  (e  eventTypePredicate ) Create (_  event.TypedCreateEvent [client.Object ]) bool  {
256+ 	return  e .eventType  ==  CreateEvent 
257+ }
258+ 
259+ func  (e  eventTypePredicate ) Delete (_  event.TypedDeleteEvent [client.Object ]) bool  {
260+ 	return  e .eventType  ==  DeleteEvent 
261+ }
262+ 
263+ func  (e  eventTypePredicate ) Update (_  event.TypedUpdateEvent [client.Object ]) bool  {
264+ 	return  e .eventType  ==  UpdateEvent 
265+ }
266+ 
267+ func  (e  eventTypePredicate ) Generic (_  event.TypedGenericEvent [client.Object ]) bool  {
268+ 	return  e .eventType  ==  GenericEvent 
269+ }
270+ 
271+ // OnCreatePredicate returns a predicate that reacts only to create events. 
272+ func  OnCreatePredicate () predicate.Predicate  {
273+ 	return  OnEventTypePredicate (CreateEvent )
274+ }
275+ 
276+ // OnUpdatePredicate returns a predicate that reacts only to update events. 
277+ func  OnUpdatePredicate () predicate.Predicate  {
278+ 	return  OnEventTypePredicate (UpdateEvent )
279+ }
280+ 
281+ // OnDeletePredicate returns a predicate that reacts only to delete events. 
282+ func  OnDeletePredicate () predicate.Predicate  {
283+ 	return  OnEventTypePredicate (DeleteEvent )
284+ }
285+ 
286+ // OnGenericPredicate returns a predicate that reacts only to generic events. 
287+ func  OnGenericPredicate () predicate.Predicate  {
288+ 	return  OnEventTypePredicate (GenericEvent )
289+ }
290+ 
291+ // OnEventTypePredicate returns a predicate that reacts only to events of the specified type. 
292+ func  OnEventTypePredicate (eventType  EventType ) predicate.Predicate  {
293+ 	return  eventTypePredicate {eventType : eventType }
294+ }
0 commit comments