Skip to main content

GenericProvider

Struct GenericProvider 

Source
pub struct GenericProvider;
Expand description

The generic battle provider: dynamic ids + the runner’s standard formula. The stack never drives a turn loop here (the runner’s own loop fires the events), so select_move/apply_move_effect/create_monster are inert stubs; calculate_damage mirrors the runner formula for completeness.

Trait Implementations§

Source§

impl BattleProvider for GenericProvider

Source§

fn calculate_damage( &self, move_: &Skill, attacker: &BattlerState<Self>, defender: &BattlerState<Self>, random: u8, is_critical: bool, ) -> DamageResult

The runner’s standard formula with the variance byte and crit flag given (the stack driver’s shape). The runner’s own loop precomputes damage itself (damage_rollctx.mv.damage); this mirrors it.

Source§

type Monster = ()

The monster data type.
Source§

type Move = Skill

The move identifier or data type.
Source§

type Ability = ()

The ability identifier type.
Source§

type Status = StatusId

The status condition type.
Source§

type Stat = StatId

The stat identifier type. Must be Copy + PartialEq for EnumMap key usage.
Source§

type Species = SpeciesData

The species identifier type.
Source§

type Type = TypeId

The elemental type identifier type.
Source§

type Item = ()

The item identifier type.
Source§

fn select_move( &self, battler: &BattlerState<Self>, _state: &BattleState<Self>, ) -> Self::Move

Select a move for the given battler. Typically delegates to a BattleAI implementation.
Source§

fn apply_move_effect( &self, _effect: MoveEffect, _user: &mut BattlerState<Self>, _target: &mut BattlerState<Self>, ) -> EffectResult

Apply a move’s effect after damage has been dealt. Typically delegates to an EffectHandler implementation.
Source§

fn create_monster( &self, species: Self::Species, level: u8, ) -> BattlerState<Self>

Construct a battler state from species and level data. Read more
Source§

fn check_faint(&self, battler: &BattlerState<Self>) -> bool

Check whether a battler has fainted (HP = 0).
Source§

fn move_cost(&self, _move_: &Self::Move) -> &[(u16, u16)]

The resource cost of move_ as a list of (resource_id, amount) pairs. Read more
Source§

fn turn_order_key( &self, _state: &BattleState<Self>, _who: BattlerRef, _action: &BattleAction<Self>, _rng: &mut dyn BattleRng, ) -> OrderKey
where Self: Sized,

Return the OrderKey used to sequence who’s action this turn. Read more
Source§

fn before_move( &self, _state: &mut BattleState<Self>, _who: BattlerRef, _action: &BattleAction<Self>, _rng: &mut dyn BattleRng, ) -> MoveGate<Self>
where Self: Sized,

Pre-move status gate: may who act with action this turn? Read more
Source§

fn accuracy_check( &self, _state: &BattleState<Self>, _who: BattlerRef, _target: BattlerRef, _move_: &Self::Move, _rng: &mut dyn BattleRng, ) -> bool
where Self: Sized,

Accuracy check for who’s move_ against target (incl. the Gen-1 1/256 miss). Returns true if the move connects. Default: always hits.
Source§

fn end_of_turn( &self, _state: &mut BattleState<Self>, _rng: &mut dyn BattleRng, ) -> Vec<EffectResult>
where Self: Sized,

End-of-turn residual hook: poison/burn tick, leech seed, wrap damage, weather, etc. The game owns ordering and numbers; it returns the resulting EffectResults for the UI. Default: no residuals.
Source§

fn roll_critical( &self, _state: &BattleState<Self>, _who: BattlerRef, _target: BattlerRef, _move_: &Self::Move, _rng: &mut dyn BattleRng, ) -> bool
where Self: Sized,

Roll whether who’s move_ against target lands a critical hit. Read more
Source§

impl Clone for GenericProvider

Source§

fn clone(&self) -> GenericProvider

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for GenericProvider

Source§

impl Debug for GenericProvider

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for GenericProvider

Source§

fn default() -> GenericProvider

Returns the “default value” for a type. Read more
Source§

impl EffectProvider for GenericProvider

Source§

fn effect_for_move(&self, _m: &Self::Move) -> Option<&'static Effect<Self>>

The runner collects from the compiled registry directly (per-record), never through the resolvers.

Source§

fn effect_for_status(&self, _s: &Self::Status) -> Option<&'static Effect<Self>>

Source§

fn turn_order_rank( &self, state: &BattleState<Self>, who: BattlerRef, _action: &Self::Move, ) -> (i32, i32)

(-priority, -effective speed); skills carry no priority (v1), so the priority tier is 0.

Source§

type EffectStateKind = VolatileKind

The game-supplied typed per-effect-kind state enum (design §3.1). The engine treats it opaquely (it only stamps effect_order and routes it to the host). pokered supplies the Gen-1 enum (Toxic counter, Substitute hp, …).
Source§

fn effect_for_volatile( &self, kind: &Self::EffectStateKind, ) -> Option<&'static Effect<Self>>
where Self: Sized,

Resolve the Effect registered for a live volatile in the effect arena (design §3.4: every live effect on a battler contributes its handlers, not only the non-volatile status). Returns None (the default) when the volatile registers no hooks — so a provider that has no volatile-borne residuals (every game built on the engine so far) is completely unaffected and the driver’s arena-residual pass is inert. Read more
Source§

fn forced_action( &self, effects: &[EffectState<Self>], actor: BattlerRef, chosen: &BattleAction<Self>, ) -> Option<BattleAction<Self>>
where Self: Sized,

Cross-turn action override (design §3 / §9, the multi-turn lock-in seam). Before the driver executes actor’s chosen action, it asks the game whether a live volatile forces a different action this turn — Gen-1 Thrash/Petal Dance and Wrap/Bind re-issue the locked move ignoring the player’s choice, Fly/Dig/Solar Beam strike on the second turn, and Hyper Beam recharge forces inaction (BattleAction::Nothing). The game reads its own effects arena (the cross-turn home of the lock counter / charge flag / recharge flag) and returns Some(forced) to override chosen, or None to let the chosen action stand. Read more
Source§

fn effect_for_ability( &self, b: &BattlerState<Self>, ) -> Option<&'static Effect<Self>>
where Self: Sized,

Resolve the Effect registered for a battler’s ability, hosted on that battler (design §2.4). Returns None (the default) when the game has no abilities or this one registers no stack hooks.
Source§

fn effect_for_item( &self, b: &BattlerState<Self>, ) -> Option<&'static Effect<Self>>
where Self: Sized,

Resolve the Effect registered for a battler’s held item, hosted on that battler (design §2.4). Returns None (the default) when the game has no items or this one registers no stack hooks.
Source§

fn side_effects( &self, ctx: &BattleCtx<'_, Self>, side: u8, ) -> &[&'static Effect<Self>]
where Self: Sized,

Resolve the side-hosted effects for side (screens, hazards, Wish; design §2.4). Returns &[] (the default) when the game has no side conditions. Read more
Source§

fn field_effects(&self, ctx: &BattleCtx<'_, Self>) -> &[&'static Effect<Self>]
where Self: Sized,

Resolve the field-hosted effects (weather, terrain, Trick Room; design §2.4). Returns &[] (the default) when the game has no field conditions. The returned slice borrows from self (see side_effects).
Source§

impl RuleBindings<GenericProvider> for GenericBindings

Source§

fn type_chart_mult( &self, ctx: &BattleCtx<'_, GenericProvider>, move_type_index: usize, defender: BattlerRef, ) -> (u32, u32)

The chart fold for the in-flight move type vs the defender’s element, read from the COMPILED RON type_chart (the data layer owns the relation). An untyped defender is neutral.

Source§

fn apply_boost( &self, b: &mut BattlerState<GenericProvider>, stat_index: usize, stages: i8, ) -> bool

Apply a signed stat-stage delta to who for the interned stat_index. Returns false if the index is unknown (a no-op; the loader validates names at compile, so this is defense-in-depth). Phase 1 applies directly; the nested-TryBoost veto is driver orchestration (doc 11 §3).
Source§

fn set_status( &self, b: &mut BattlerState<GenericProvider>, status_index: usize, ) -> bool

Set who’s non-volatile status for the interned status_index. Returns false if the index is unknown.
Source§

fn has_type(&self, b: &BattlerState<GenericProvider>, type_index: usize) -> bool

Whether who has the type with interned chart type_index (the HasType predicate, doc 11 §1.1). Pure read.
Source§

fn make_volatile(&self, name: &str, amount: u16) -> Option<VolatileKind>

Build the game’s OPAQUE P::EffectStateKind volatile for the vocabulary name + already-resolved amount (the InflictVolatile op). The engine installs whatever is returned generically (fresh arena id) and never learns what the volatile means — only the game does. Defaulted to None ⇒ a game with no volatiles (or that doesn’t recognise name) makes the op inert. Pure — the engine already drew any rng needed for amount.
Source§

fn has_volatile( &self, ctx: &BattleCtx<'_, GenericProvider>, who: BattlerRef, name: &str, ) -> bool

Whether who currently has the live volatile named by name (the HasVolatile predicate, blueprint 15 §2/§3 — the Substitute block on side-status). The game inspects its own ctx.effects arena (the engine treats EffectStateKind opaquely, so only the game can tell which arena entry IS “Substitute”). Defaulted to false so a game with no volatiles (every game built so far) is unaffected and the predicate never matches. Pure read; no entropy.
Source§

fn battler_level(&self, b: &BattlerState<GenericProvider>) -> u16

The level of battler b (the LevelGE predicate’s gate + the level-based SetDamage sources — Seismic Toss / Night Shade / Psywave; blueprint 15 §2/§3). BattlerState<P> carries no level field (the engine is level-agnostic), so the game answers it here. Defaulted to 0 ⇒ a game that authors no level-gated op is unaffected (it never calls this) and LevelGE is 0 >= 0 == true. Pure read; no entropy. Game-agnostic: “a number the binding supplies per battler”.
Source§

fn has_status( &self, b: &BattlerState<GenericProvider>, status_index: usize, ) -> bool

Whether who currently has the non-volatile status at interned status_index (the TargetHasStatus predicate — the Dream Eater sleep gate, blueprint 15 §2). The status index is the game’s vocabulary (the same indices set_status consumes). Defaulted to false ⇒ a game that does not implement it never matches. Pure read; no entropy.
Source§

fn has_any_status(&self, b: &BattlerState<GenericProvider>) -> bool

Whether b has ANY non-volatile status (the TargetHasAnyStatus predicate — the Toxic “already-statused ⇒ fail” guard). The engine knows no concrete status, so the game answers. Defaulted to false ⇒ a game that doesn’t implement it never matches. Pure read; no entropy.
Source§

fn set_status_with_amount( &self, b: &mut BattlerState<P>, status_index: usize, _amount: u16, ) -> bool

Set who’s non-volatile status carrying a game-interpreted numeric amount (e.g. Gen-1 sleep turns). The engine resolves amount from the op’s AmountSpec — drawing its OWN rng — and hands the pure number here. Defaulted to delegate to set_status and ignore the amount, so a game whose statuses carry no duration is unaffected. Pure; no entropy.
Source§

fn current_stat_index(&self, _ctx: &BattleCtx<'_, P>) -> Option<usize>

The in-flight folded stat index, if the driver stashed one for a StatIs predicate (the Sandstorm WeatherModifyStat case, doc 11 §1). Default NoneStatIs never matches. Pure.
Source§

fn redirect_hp_loss( &self, _ctx: &mut BattleCtx<'_, P>, _who: BattlerRef, _source: BattlerRef, _amount: u16, ) -> bool

Damage-redirection seam for the DIRECT-MUTATE ops (SetHp / DamageFraction / DamageCurrentHpFraction / RepeatHits) that apply HP OUTSIDE the driver’s Event::Damage fold. Before such an op subtracts amount HP from who (attributed to source), the interpreter asks the game whether a damage sink on who should swallow it instead — a monster Substitute doll, a cross-game shield/ward/decoy. Returning true means the game HANDLED the loss (it mutated its own sink via ctx); the interpreter then SKIPS the direct HP write. Returning false (the default) leaves the op to apply HP exactly as before. Read more
Source§

fn move_type_is_defender_type( &self, ctx: &BattleCtx<'_, P>, move_type_index: usize, who: BattlerRef, ) -> bool

Whether the in-flight move’s type (move_type_index, recovered from the record’s type:) equals one of who’s types (the MoveTypeIsDefenderType predicate — Gen-1 burn/freeze/paralyze self-type-immunity quirk #23, blueprint 15 §2/§3). Defaulted to false ⇒ the quirk never fires for a game that does not implement it. Pure read; no entropy. The default body delegates to has_type so a game whose has_type already answers chart membership gets the quirk for free by overriding nothing — but the engine has no move_type_index for a generic predicate, so the loader passes it through and the binding decides.
Source§

fn resource_id(&self, resource_index: usize) -> u16

Map an interned resource index (the ruleset’s resources: order) to the engine’s opaque resource id used in ResourcePool / BattleProvider::move_cost (the MP/SP/mana cost gate, doc 13 §4). Defaulted so games with no resources need not implement it — they never reference a resource, so it is never called. Default: identity (index as u16). Pure.
Source§

fn can_pay_resource( &self, b: &BattlerState<P>, resource_index: usize, amount: u16, ) -> bool

Whether b can pay amount of the resource at interned resource_index (the PayResource op’s gate, doc 13 §4). Pure read. The default delegates to the engine’s ResourcePool via resource_id — a game that stores its pool on BattlerState.resources (the engine default) gets correct behavior for free.
Source§

fn pay_resource( &self, b: &mut BattlerState<P>, resource_index: usize, amount: u16, )

Deduct amount of the resource at interned resource_index from b (the PayResource op’s deduction). Pure arithmetic — no rng. Default delegates to the engine ResourcePool.
Source§

impl RulesProvider for GenericProvider

Source§

type Bindings = GenericBindings

The game binding resolving interned indices ↔ concrete P::Stat/P::Status and supplying the chart fold.
Source§

fn compiled(&self) -> &CompiledRuleset

The compiled ruleset (the side registry the interpreter reads by source_effect). Typically a &'static built once via OnceLock.
Source§

fn bindings(&self) -> &Self::Bindings

The game binding instance.
Source§

fn rules_host() -> Option<&'static RulesHost<GenericProvider>>

Read the provider from ctx for the interpreter. The interpreter only has &mut BattleCtx, which does NOT carry &P (the engine’s borrow discipline). A game whose chart/registry is a &'static (the common case) returns it here without touching ctx; the default points at that static. Returns None if no static is installed.

Auto Trait Implementations§

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> AsOut<T> for T
where T: Copy,

Source§

fn as_out(&mut self) -> Out<'_, T>

Returns an out reference to self.
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

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

Source§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

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

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

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

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

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

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

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

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

Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

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> MaybeSendSync for T

Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

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

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

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

Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

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