kube_runtime::watcher

Enum Event

source
pub enum Event<K> {
    Apply(K),
    Delete(K),
    Init,
    InitApply(K),
    InitDone,
}
Expand description

Watch events returned from the watcher

Variants§

§

Apply(K)

An object was added or modified

§

Delete(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.

§

Init

The watch stream was restarted.

A series of InitApply events are expected to follow until all matching objects have been listed. This event can be used to prepare a buffer for InitApply events.

§

InitApply(K)

Received an object during Init.

Objects returned here are either from the initial stream using the StreamingList strategy, or from pages using the ListWatch strategy.

These events can be passed up if having a complete set of objects is not a concern. If you need to wait for a complete set, please buffer these events until an InitDone.

§

InitDone

The initialisation is complete.

This can be used as a signal to replace buffered store contents atomically. No more InitApply events will happen until the next Init event.

Any objects that were previously Applied but are not listed in any of the InitApply events should be assumed to have been Deleted.

Implementations§

source§

impl<K> Event<K>

source

pub fn into_iter_applied(self) -> impl Iterator<Item = K>

👎Deprecated since 0.92.0: unnecessary to flatten a single object. This fn will be removed in 0.96.0.

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>

👎Deprecated since 0.92.0: unnecessary to flatten a single object. This fn will be removed in 0.96.0.

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)) -> 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§

source§

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

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> Debug for Event<K>

source§

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

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
source§

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

source§

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>,

source§

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>,

source§

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