Skip to main content

KTable

Struct KTable 

Source
pub struct KTable<K, V, KS = <K as DefaultSerde>::Serde, VS = <V as DefaultSerde>::Serde> { /* private fields */ }
Expand description

A changelog-backed table handle.

store_name is the materialized store this table reads and writes. The DSL uses it to derive changelog topics and to reuse the store in downstream materialized ops. source_topic is the Kafka topic this table was sourced from. It is set for builder.table_explicit() KTables and is None for derived KTables. The join DSL reads it to declare copartition groups.

Implementations§

Source§

impl<K, V, KS, VS> KTable<K, V, KS, VS>

Source

pub fn with_key_serde<NewKS>(self, serde: NewKS) -> KTable<K, V, NewKS, VS>

Source

pub fn with_value_serde<NewVS>(self, serde: NewVS) -> KTable<K, V, KS, NewVS>

Source§

impl<K, V, KS, VS> KTable<K, V, KS, VS>
where K: Any + Send + Sync + Clone, V: Any + Send + Clone,

Source

pub fn to_stream(&self) -> KStream<K, V, KS, VS>
where KS: Clone, VS: Clone,

toStream: view the table’s change-stream as a KStream, forwarding every record unchanged. Not key-changing.

Source

pub fn map_values<V2, F>( &self, f: F, ) -> KTable<K, V2, KS, <V2 as DefaultSerde>::Serde>
where V2: DefaultSerde + Any + Send + Clone, F: Fn(&V) -> V2 + Clone + Send + Sync + 'static, KS: Clone,

mapValues: transform each value and forward the rewritten table view.

This op does not materialize a store. It matches the JVM’s non-materialized mapValues. The key stays unchanged, and the op emits no changelog topic. Use map_values_materialized for the store-backed form.

Source

pub fn map_values_materialized<V2, NKS, NVS, F>( &self, f: F, materialized: impl Into<Materialized<NKS, NVS>>, ) -> KTable<K, V2, NKS, NVS>
where V2: Any + Send + Clone, NKS: Serde<K> + Clone + 'static, NVS: Serde<V2> + Clone + 'static, F: Fn(&V) -> V2 + Clone + Send + Sync + 'static,

mapValues: transform each value, materializing the rewritten table into a new store. Key unchanged.

Source

pub fn filter<NKS, NVS, P>( &self, predicate: P, materialized: impl Into<Materialized<NKS, NVS>>, ) -> KTable<K, V, NKS, NVS>
where NKS: Serde<K> + Clone + 'static, NVS: Serde<V> + Clone + 'static, P: Fn(&K, &V) -> bool + Clone + Send + Sync + 'static,

filter: keep the rows that match predicate and materialize the view.

When a row that matched before stops matching, this op removes it from the store and forwards it as a Change<V> tombstone, so downstream views drop it. See the processor module doc.

Source

pub fn group_by<KR, VR, M>(&self, mapper: M) -> KGroupedTable<KR, VR>
where KR: DefaultSerde + Any + Send + Sync + Clone + PartialEq, VR: DefaultSerde + Any + Send + Sync + Clone, <KR as DefaultSerde>::Serde: Serde<KR> + Clone, <VR as DefaultSerde>::Serde: Serde<VR> + Clone, M: Fn(&K, &V) -> (KR, VR) + Clone + Send + Sync + 'static, K: Any + Send + Sync + Clone, V: Any + Send + Clone,

groupBy: re-group the table by a new (KR, VR) derived from each entry.

After the re-group, aggregate with count, reduce, or aggregate. This op always repartitions: the JVM KTable.groupBy inserts a repartition-map, a sink, and a source.

Source

pub fn group_by_explicit<KR, VR, GKS, GVS, M>( &self, mapper: M, grouped: impl Into<Grouped<GKS, GVS>>, ) -> KGroupedTable<KR, VR>
where KR: Any + Send + Sync + Clone + PartialEq, VR: Any + Send + Sync + Clone, GKS: Serde<KR> + Clone + 'static, GVS: Serde<VR> + Clone + 'static, M: Fn(&K, &V) -> (KR, VR) + Clone + Send + Sync + 'static, K: Any + Send + Sync + Clone, V: Any + Send + Clone,

groupBy with explicit repartition serdes.

Source

pub fn join<VB, VR, F, VBS>( &self, other: &KTable<K, VB, KS, VBS>, joiner: F, ) -> KTable<K, VR, KS, <VR as DefaultSerde>::Serde>
where V: Sync, VB: Any + Send + Sync + Clone, VR: DefaultSerde + Any + Send + Clone, F: Fn(&V, &VB) -> VR + Clone + Send + Sync + 'static, KS: Clone, VBS: Clone,

join (inner KTable-KTable join): join rows that both tables hold.

For each key, the join row exists only when both tables hold a value. On any change to either side, the join re-reads the other side’s current value from its store and forwards a Change<VR>. It forwards a tombstone when the row stops existing.

Both tables must be materialized, because the join reads each side’s store. The join declares the two source topics as a copartition group (KIP-1071).

§Panics

Panics if synchronized client state is poisoned or a response violates an invariant established by protocol validation.

Source

pub fn left_join<VB, VR, F, VBS>( &self, other: &KTable<K, VB, KS, VBS>, joiner: F, ) -> KTable<K, VR, KS, <VR as DefaultSerde>::Serde>
where V: Sync, VB: Any + Send + Sync + Clone, VR: DefaultSerde + Any + Send + Clone, F: Fn(&V, Option<&VB>) -> VR + Clone + Send + Sync + 'static, KS: Clone, VBS: Clone,

leftJoin (left KTable-KTable join): emit a row for every left row.

This join emits a row whenever the left (this) side is present. The right side is optional, and the joiner receives None for it on a miss.

§Panics

Panics if synchronized client state is poisoned or a response violates an invariant established by protocol validation.

Source

pub fn outer_join<VB, VR, F, VBS>( &self, other: &KTable<K, VB, KS, VBS>, joiner: F, ) -> KTable<K, VR, KS, <VR as DefaultSerde>::Serde>
where V: Sync, VB: Any + Send + Sync + Clone, VR: DefaultSerde + Any + Send + Clone, F: Fn(Option<&V>, Option<&VB>) -> VR + Clone + Send + Sync + 'static, KS: Clone, VBS: Clone,

outerJoin (outer KTable-KTable join): emit a row for either side.

This join emits a row whenever either side is present. The joiner receives an Option for each side.

Source

pub fn join_on_foreign_key<KO, VB, VR, FKE, J, KOS, KosOther, VbsOther>( &self, other: &KTable<KO, VB, KosOther, VbsOther>, fk_extractor: FKE, joiner: J, fk_serde: KOS, ) -> KTable<K, VR, KS, <VR as DefaultSerde>::Serde>
where KO: Any + Send + Sync + Clone, VB: Any + Send + Sync + Clone, VR: DefaultSerde + Any + Send + Sync + Clone, K: Send + Sync, V: Send + Sync, FKE: Fn(&V) -> KO + Clone + Send + Sync + 'static, J: Fn(&V, &VB) -> VR + Clone + Send + Sync + 'static, KOS: Serde<KO> + Clone + 'static, KS: Serde<K> + Clone + 'static, VS: Serde<V> + Clone + 'static, KosOther: Clone, VbsOther: Serde<VB> + Clone + 'static,

join on a foreign key (KIP-213 inner FK join).

For each left record, the foreign key fk_extractor(&VA) selects a row in other, which is a KTable<KO, VB>. joiner(&VA, &VB) produces the result whenever both are present.

Both tables must be materialized source tables built with builder.table, because the join reads sa and sb and needs their serdes. The join lowers to the two-subtopology KIP-213 graph: the subscription registration and response repartition topics, a subscription state store, and the five FK-join processors. See the module dsl::processors::fk for the per-processor semantics.

§Panics

Panics if synchronized client state is poisoned or a response violates an invariant established by protocol validation.

Source

pub fn left_join_on_foreign_key<KO, VB, VR, FKE, J, KOS, KosOther, VbsOther>( &self, other: &KTable<KO, VB, KosOther, VbsOther>, fk_extractor: FKE, joiner: J, fk_serde: KOS, ) -> KTable<K, VR, KS, <VR as DefaultSerde>::Serde>
where KO: Any + Send + Sync + Clone, VB: Any + Send + Sync + Clone, VR: DefaultSerde + Any + Send + Sync + Clone, K: Send + Sync, V: Send + Sync, FKE: Fn(&V) -> KO + Clone + Send + Sync + 'static, J: Fn(&V, Option<&VB>) -> VR + Clone + Send + Sync + 'static, KOS: Serde<KO> + Clone + 'static, KS: Serde<K> + Clone + 'static, VS: Serde<V> + Clone + 'static, KosOther: Clone, VbsOther: Serde<VB> + Clone + 'static,

leftJoin on a foreign key (KIP-213 left FK join).

This join emits a row for every left record. The joiner receives None for the foreign value when the foreign key has no matching row.

Source§

impl<K, V, KS, VS> KTable<K, V, KS, VS>
where K: Any + Send + Sync + Clone, V: Any + Send + Clone,

Source

pub fn suppress(&self, suppressed: Suppressed<K>) -> KTable<K, V, KS, VS>
where KS: Clone, VS: Clone,

suppress(Suppressed): buffer updates and emit on a delay.

On a windowed table, until_window_closes emits each window’s final value once the window closes. until_time_limit rate-limits any table to one update per key per wait.

The buffer is a registered SuppressBytesStore. It is durable, with a changelog and restore, when logging is on. The serdes come from the table-producing operation. A call to suppress on a table that changed its value type through map_values panics, because no serde factory is available.

§Panics

Panics if synchronized client state is poisoned or a response violates an invariant established by protocol validation.

Auto Trait Implementations§

§

impl<K, V, KS = <K as DefaultSerde>::Serde, VS = <V as DefaultSerde>::Serde> !RefUnwindSafe for KTable<K, V, KS, VS>

§

impl<K, V, KS = <K as DefaultSerde>::Serde, VS = <V as DefaultSerde>::Serde> !Send for KTable<K, V, KS, VS>

§

impl<K, V, KS = <K as DefaultSerde>::Serde, VS = <V as DefaultSerde>::Serde> !Sync for KTable<K, V, KS, VS>

§

impl<K, V, KS = <K as DefaultSerde>::Serde, VS = <V as DefaultSerde>::Serde> !UnwindSafe for KTable<K, V, KS, VS>

§

impl<K, V, KS, VS> Freeze for KTable<K, V, KS, VS>
where KS: Freeze, VS: Freeze,

§

impl<K, V, KS, VS> Unpin for KTable<K, V, KS, VS>
where KS: Unpin, VS: Unpin,

§

impl<K, V, KS, VS> UnsafeUnpin for KTable<K, V, KS, VS>
where KS: UnsafeUnpin, VS: UnsafeUnpin,

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
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<K, Q> Comparable<Q> for K
where K: Borrow<Q> + ?Sized, Q: Ord + ?Sized,

§

fn compare(&self, key: &Q) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<K, Q> Equivalent<Q> for K
where K: Borrow<Q> + ?Sized, Q: Eq + ?Sized,

§

fn equivalent(&self, key: &Q) -> bool

Compare self to key and return true if they are equal.
§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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
§

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

§

fn fg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the foreground set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like red() and green(), which have the same functionality but are pithier.

§Example

Set foreground color to white using fg():

use yansi::{Paint, Color};

painted.fg(Color::White);

Set foreground color to white using white().

use yansi::Paint;

painted.white();
§

fn primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Primary].

§Example
println!("{}", value.primary());
§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Fixed].

§Example
println!("{}", value.fixed(color));
§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Rgb].

§Example
println!("{}", value.rgb(r, g, b));
§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Black].

§Example
println!("{}", value.black());
§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Red].

§Example
println!("{}", value.red());
§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Green].

§Example
println!("{}", value.green());
§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Yellow].

§Example
println!("{}", value.yellow());
§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Blue].

§Example
println!("{}", value.blue());
§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Magenta].

§Example
println!("{}", value.magenta());
§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Cyan].

§Example
println!("{}", value.cyan());
§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: White].

§Example
println!("{}", value.white());
§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlack].

§Example
println!("{}", value.bright_black());
§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightRed].

§Example
println!("{}", value.bright_red());
§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightGreen].

§Example
println!("{}", value.bright_green());
§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightYellow].

§Example
println!("{}", value.bright_yellow());
§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlue].

§Example
println!("{}", value.bright_blue());
§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.bright_magenta());
§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightCyan].

§Example
println!("{}", value.bright_cyan());
§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightWhite].

§Example
println!("{}", value.bright_white());
§

fn bg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the background set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like on_red() and on_green(), which have the same functionality but are pithier.

§Example

Set background color to red using fg():

use yansi::{Paint, Color};

painted.bg(Color::Red);

Set background color to red using on_red().

use yansi::Paint;

painted.on_red();
§

fn on_primary(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Primary].

§Example
println!("{}", value.on_primary());
§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Fixed].

§Example
println!("{}", value.on_fixed(color));
§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Black].

§Example
println!("{}", value.on_black());
§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Red].

§Example
println!("{}", value.on_red());
§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Green].

§Example
println!("{}", value.on_green());
§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Yellow].

§Example
println!("{}", value.on_yellow());
§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Blue].

§Example
println!("{}", value.on_blue());
§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Magenta].

§Example
println!("{}", value.on_magenta());
§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Cyan].

§Example
println!("{}", value.on_cyan());
§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: White].

§Example
println!("{}", value.on_white());
§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlack].

§Example
println!("{}", value.on_bright_black());
§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightRed].

§Example
println!("{}", value.on_bright_red());
§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightGreen].

§Example
println!("{}", value.on_bright_green());
§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlue].

§Example
println!("{}", value.on_bright_blue());
§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightWhite].

§Example
println!("{}", value.on_bright_white());
§

fn attr(&self, value: Attribute) -> Painted<&T>

Enables the styling [Attribute] value.

This method should be used rarely. Instead, prefer to use attribute-specific builder methods like bold() and underline(), which have the same functionality but are pithier.

§Example

Make text bold using attr():

use yansi::{Paint, Attribute};

painted.attr(Attribute::Bold);

Make text bold using using bold().

use yansi::Paint;

painted.bold();
§

fn bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Bold].

§Example
println!("{}", value.bold());
§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Dim].

§Example
println!("{}", value.dim());
§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Italic].

§Example
println!("{}", value.italic());
§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute :: Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute :: RapidBlink].

§Example
println!("{}", value.rapid_blink());
§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Invert].

§Example
println!("{}", value.invert());
§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Conceal].

§Example
println!("{}", value.conceal());
§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Strike].

§Example
println!("{}", value.strike());
§

fn quirk(&self, value: Quirk) -> Painted<&T>

Enables the yansi [Quirk] value.

This method should be used rarely. Instead, prefer to use quirk-specific builder methods like mask() and wrap(), which have the same functionality but are pithier.

§Example

Enable wrapping using .quirk():

use yansi::{Paint, Quirk};

painted.quirk(Quirk::Wrap);

Enable wrapping using wrap().

use yansi::Paint;

painted.wrap();
§

fn mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Mask].

§Example
println!("{}", value.mask());
§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Wrap].

§Example
println!("{}", value.wrap());
§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Linger].

§Example
println!("{}", value.linger());
§

fn clear(&self) -> Painted<&T>

👎Deprecated since 1.0.1:

renamed to resetting() due to conflicts with Vec::clear(). The clear() method will be removed in a future release.

Returns self with the quirk() set to [Quirk :: Clear].

§Example
println!("{}", value.clear());
§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Resetting].

§Example
println!("{}", value.resetting());
§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Bright].

§Example
println!("{}", value.bright());
§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: OnBright].

§Example
println!("{}", value.on_bright());
§

fn whenever(&self, value: Condition) -> Painted<&T>

Conditionally enable styling based on whether the [Condition] value applies. Replaces any previous condition.

See the crate level docs for more details.

§Example

Enable styling painted only when both stdout and stderr are TTYs:

use yansi::{Paint, Condition};

painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new [Painted] with a default [Style]. Read more
§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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