Enum kube::runtime::watcher::Event

source ·
pub enum Event<K> {
    Applied(K),
    Deleted(K),
    Restarted(Vec<K>),
}
Available on crate feature runtime only.
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>)

The watch stream was restarted, so Deleted events may have been missed

Should be used as a signal to replace the store contents atomically.

Any objects that were previously Applied but are not listed in this event should be assumed to have been Deleted.

Implementations§

source§

impl<K> Event<K>

source

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.

source

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.

source

pub fn modify(self, f: impl FnMut(&mut K)) -> Event<K>

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§

source§

impl<K> Clone for Event<K>
where K: Clone,

source§

fn clone(&self) -> Event<K>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<K> Debug for Event<K>
where K: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more