Enum kube_runtime::watcher::Event
source · pub enum Event<K> {
Applied(K),
Deleted(K),
Restarted(Vec<K>),
}
Expand description
Watch events returned from the watcher
Variants§
Applied(K)
An object was added or modified
Deleted(K)
An object was deleted
NOTE: This should not be used for managing persistent state elsewhere, since events may be lost if the watcher is unavailable. Use Finalizers instead.
Restarted(Vec<K>)
Implementations§
source§impl<K> Event<K>
impl<K> Event<K>
sourcepub fn into_iter_applied(self) -> impl Iterator<Item = K>
pub fn into_iter_applied(self) -> impl Iterator<Item = K>
Flattens out all objects that were added or modified in the event.
Deleted
objects are ignored, all objects mentioned by Restarted
events are
emitted individually.
sourcepub fn into_iter_touched(self) -> impl Iterator<Item = K>
pub fn into_iter_touched(self) -> impl Iterator<Item = K>
Flattens out all objects that were added, modified, or deleted in the event.
Note that Deleted
events may be missed when restarting the stream. Use finalizers
or owner references instead if you care about cleaning up external resources after
deleted objects.
sourcepub fn modify(self, f: impl FnMut(&mut K)) -> Self
pub fn modify(self, f: impl FnMut(&mut K)) -> Self
Map each object in an event through a mutator fn
This allows for memory optimizations in watch streams. If you are chaining a watch stream into a reflector as an in memory state store, you can control the space used by each object by dropping fields.
use k8s_openapi::api::core::v1::Pod;
use kube::ResourceExt;
event.modify(|pod| {
pod.managed_fields_mut().clear();
pod.annotations_mut().clear();
pod.status = None;
});
Trait Implementations§
Auto Trait Implementations§
impl<K> Freeze for Event<K>where
K: Freeze,
impl<K> RefUnwindSafe for Event<K>where
K: RefUnwindSafe,
impl<K> Send for Event<K>where
K: Send,
impl<K> Sync for Event<K>where
K: Sync,
impl<K> Unpin for Event<K>where
K: Unpin,
impl<K> UnwindSafe for Event<K>where
K: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more