Skip to main content

ModelDescriptor

Struct ModelDescriptor 

Source
pub struct ModelDescriptor<M, PK> {
Show 26 fields pub schema_name: &'static str, pub table_name: &'static str, pub columns: &'static [ModelColumn], pub primary_key: &'static str, pub allowed_fields: &'static [&'static str], pub allowed_includes: &'static [&'static str], pub allowed_sorts: &'static [&'static str], pub read_allow_policies: &'static [ReadPolicy], pub read_deny_policies: &'static [ReadPolicy], pub detail_allow_policies: &'static [ReadPolicy], pub detail_deny_policies: &'static [ReadPolicy], pub create_allow_policies: &'static [ReadPolicy], pub create_deny_policies: &'static [ReadPolicy], pub update_allow_policies: &'static [ReadPolicy], pub update_deny_policies: &'static [ReadPolicy], pub delete_allow_policies: &'static [ReadPolicy], pub delete_deny_policies: &'static [ReadPolicy], pub create_defaults: &'static [CreateDefault], pub emitted_events: &'static [ModelEventKind], pub version_column: Option<&'static str>, pub audit_enabled: bool, pub pii_columns: &'static [&'static str], pub sensitive_columns: &'static [&'static str], pub soft_delete_column: Option<&'static str>, pub retention_days: Option<u32>, pub upsert_update_columns: &'static [&'static str], /* private fields */
}

Fields§

§schema_name: &'static str§table_name: &'static str§columns: &'static [ModelColumn]§primary_key: &'static str§allowed_fields: &'static [&'static str]§allowed_includes: &'static [&'static str]§allowed_sorts: &'static [&'static str]§read_allow_policies: &'static [ReadPolicy]§read_deny_policies: &'static [ReadPolicy]§detail_allow_policies: &'static [ReadPolicy]§detail_deny_policies: &'static [ReadPolicy]§create_allow_policies: &'static [ReadPolicy]§create_deny_policies: &'static [ReadPolicy]§update_allow_policies: &'static [ReadPolicy]§update_deny_policies: &'static [ReadPolicy]§delete_allow_policies: &'static [ReadPolicy]§delete_deny_policies: &'static [ReadPolicy]§create_defaults: &'static [CreateDefault]§emitted_events: &'static [ModelEventKind]§version_column: Option<&'static str>

Column name of the optimistic-locking version field, set when the model declares an @version field. None for non-versioned models, which keeps update semantics unchanged.

§audit_enabled: bool

true when the model declared @@audit. Mutations on audit-enabled models capture before/after snapshots and persist them into cratestack_audit inside the same transaction.

§pii_columns: &'static [&'static str]

SQL column names of fields declared @pii. The audit-log writer replaces these values with "[redacted-pii]" in the persisted JSON snapshots; a follow-up will extend the same redaction to error detail and tracing.

§sensitive_columns: &'static [&'static str]

SQL column names of fields declared @sensitive. Redacted in audit snapshots as "[redacted-sensitive]".

§soft_delete_column: Option<&'static str>

Column name for the soft-delete timestamp. When Some, DELETE operations become UPDATE-of-deleted_at and every SELECT through push_scoped_conditions filters out rows where the column is non-null. Defaults to Some("deleted_at") when @@soft_delete is declared.

§retention_days: Option<u32>

Retention window in days for soft-deleted rows. The runtime does not auto-GC; banks run their own scheduled job that deletes rows where deleted_at < NOW() - retention. Surfaced here so the GC can read the policy from one place.

§upsert_update_columns: &'static [&'static str]

Columns the upsert primitive is allowed to overwrite on conflict. Populated by the macro to be every scalar column except the primary key, created_at, and the @version column. Empty when the model has no eligible columns (e.g. PK-only); in that case the macro doesn’t emit an UpsertModelInput impl either, so this is just a belt-and-braces.

Implementations§

Source§

impl<M, PK> ModelDescriptor<M, PK>

Source

pub const fn new( schema_name: &'static str, table_name: &'static str, columns: &'static [ModelColumn], primary_key: &'static str, allowed_fields: &'static [&'static str], allowed_includes: &'static [&'static str], allowed_sorts: &'static [&'static str], read_allow_policies: &'static [ReadPolicy], read_deny_policies: &'static [ReadPolicy], detail_allow_policies: &'static [ReadPolicy], detail_deny_policies: &'static [ReadPolicy], create_allow_policies: &'static [ReadPolicy], create_deny_policies: &'static [ReadPolicy], update_allow_policies: &'static [ReadPolicy], update_deny_policies: &'static [ReadPolicy], delete_allow_policies: &'static [ReadPolicy], delete_deny_policies: &'static [ReadPolicy], create_defaults: &'static [CreateDefault], emitted_events: &'static [ModelEventKind], version_column: Option<&'static str>, audit_enabled: bool, pii_columns: &'static [&'static str], sensitive_columns: &'static [&'static str], soft_delete_column: Option<&'static str>, retention_days: Option<u32>, upsert_update_columns: &'static [&'static str], ) -> ModelDescriptor<M, PK>

Source

pub fn emits(&self, operation: ModelEventKind) -> bool

Source

pub fn select_projection(&self) -> String

Source

pub fn select_projection_subset(&self, columns: &[&str]) -> String

Like Self::select_projection but emits only the named columns, in the order they appear in the model descriptor. Unknown column names are silently dropped — the caller is expected to have validated the request via FieldRef already (typed-builder path) or via schema validation (string-name path). When no columns survive the filter, the primary key is emitted as a fallback so the SQL still binds at least one column to the projection.

Trait Implementations§

Source§

impl<M, PK> Clone for ModelDescriptor<M, PK>
where M: Clone, PK: Clone,

Source§

fn clone(&self) -> ModelDescriptor<M, PK>

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<M, PK> Debug for ModelDescriptor<M, PK>
where M: Debug, PK: Debug,

Source§

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

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

impl<M, PK> ReadSource<M, PK> for ModelDescriptor<M, PK>

Source§

fn schema_name(&self) -> &'static str

Logical schema name the model / view lives under. Currently always the dataset schema declared in datasource db { ... }; kept on the trait so future per-source schemas (e.g. analytics views in a dedicated schema) are a non-breaking change.
Source§

fn table_name(&self) -> &'static str

SQL identifier of the table or view this source reads from. Both backends quote it verbatim when constructing FROM clauses.
Source§

fn columns(&self) -> &'static [ModelColumn]

All projectable columns, ordered as the descriptor declares them. The read builder relies on this order when binding row decoders.
Source§

fn primary_key(&self) -> &'static str

SQL column name of the primary key. For views declared with @@no_unique (ADR-0003 §“Schema surface”) this is the empty string — find_unique is not emitted on the delegate so the builder never reads this slot.
Source§

fn allowed_fields(&self) -> &'static [&'static str]

Names accepted in where = { <name>: <op> } filter payloads — the same allow-list the model uses for read-policy scoping.
Source§

fn allowed_includes(&self) -> &'static [&'static str]

Names accepted in include = { <name>: ... } payloads. Empty on views in v1 (relation-follow off a view is out of scope — see ADR-0003 “Deferred”).
Source§

fn allowed_sorts(&self) -> &'static [&'static str]

Names accepted in orderBy = [ <name>, ... ] payloads.
Source§

fn read_allow_policies(&self) -> &'static [ReadPolicy]

@@allow("read", ...) policy literals for the list / search shape (returns one row per matching record).
Source§

fn read_deny_policies(&self) -> &'static [ReadPolicy]

@@deny("read", ...) policy literals for the list shape.
Source§

fn detail_allow_policies(&self) -> &'static [ReadPolicy]

@@allow("read", ...) policy literals for the detail shape (find_unique — returns at most one record). Models can carry stricter detail policies than list ones; views inherit a single set declared via @@allow("read", ...) on the view itself.
Source§

fn detail_deny_policies(&self) -> &'static [ReadPolicy]

@@deny("read", ...) policy literals for the detail shape.
Source§

fn soft_delete_column(&self) -> Option<&'static str>

Soft-delete sentinel column name. None on views (and on models without @@soft_delete), in which case the read builder skips the <col> IS NULL predicate it would otherwise inject.
Source§

fn select_projection(&self) -> String

Returns the <col> AS "<alias>", ... projection list the builder splices into SELECT. The default impl delegates to Self::columns so any descriptor that just stores a column list gets a working projection for free.
Source§

fn select_projection_subset(&self, columns: &[&str]) -> String

Like Self::select_projection but emits only the named columns. Unknown names are silently dropped — same contract as super::ModelDescriptor::select_projection_subset.
Source§

impl<M, PK> WriteSource<M, PK> for ModelDescriptor<M, PK>

Source§

fn create_allow_policies(&self) -> &'static [ReadPolicy]

Source§

fn create_deny_policies(&self) -> &'static [ReadPolicy]

Source§

fn update_allow_policies(&self) -> &'static [ReadPolicy]

Source§

fn update_deny_policies(&self) -> &'static [ReadPolicy]

Source§

fn delete_allow_policies(&self) -> &'static [ReadPolicy]

Source§

fn delete_deny_policies(&self) -> &'static [ReadPolicy]

Source§

fn create_defaults(&self) -> &'static [CreateDefault]

Source§

fn emitted_events(&self) -> &'static [ModelEventKind]

Source§

fn version_column(&self) -> Option<&'static str>

Optimistic-locking version column (@version). None for non-versioned models.
Source§

fn audit_enabled(&self) -> bool

true when the model declared @@audit.
Source§

fn pii_columns(&self) -> &'static [&'static str]

Source§

fn sensitive_columns(&self) -> &'static [&'static str]

Source§

fn retention_days(&self) -> Option<u32>

Soft-delete retention window. Surfaced here (alongside the soft-delete column on ReadSource) so the operator’s GC job can read both pieces from one place.
Source§

fn upsert_update_columns(&self) -> &'static [&'static str]

Columns the upsert primitive is allowed to overwrite on conflict.
Source§

impl<M, PK> Copy for ModelDescriptor<M, PK>
where M: Copy, PK: Copy,

Auto Trait Implementations§

§

impl<M, PK> Freeze for ModelDescriptor<M, PK>

§

impl<M, PK> RefUnwindSafe for ModelDescriptor<M, PK>

§

impl<M, PK> Send for ModelDescriptor<M, PK>

§

impl<M, PK> Sync for ModelDescriptor<M, PK>

§

impl<M, PK> Unpin for ModelDescriptor<M, PK>

§

impl<M, PK> UnsafeUnpin for ModelDescriptor<M, PK>

§

impl<M, PK> UnwindSafe for ModelDescriptor<M, PK>

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, 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> 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<'src, T> IntoMaybe<'src, T> for T
where T: 'src,

Source§

type Proj<U: 'src> = U

Source§

fn map_maybe<R>( self, _f: impl FnOnce(&'src T) -> &'src R, g: impl FnOnce(T) -> R, ) -> <T as IntoMaybe<'src, T>>::Proj<R>
where R: 'src,

Source§

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

Source§

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();
Source§

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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();
Source§

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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();
Source§

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

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

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

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

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

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

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

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

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

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());
Source§

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

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

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

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

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

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

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

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

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

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();
Source§

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

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

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

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

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

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

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

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

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

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());
Source§

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

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

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

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

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

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

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

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

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

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

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

Create a new Painted with a default Style. Read more
Source§

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

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<'p, T> Seq<'p, T> for T
where T: Clone,

Source§

type Item<'a> = &'a T where T: 'a

The item yielded by the iterator.
Source§

type Iter<'a> = Once<&'a T> where T: 'a

An iterator over the items within this container, by reference.
Source§

fn seq_iter(&self) -> <T as Seq<'p, T>>::Iter<'_>

Iterate over the elements of the container.
Source§

fn contains(&self, val: &T) -> bool
where T: PartialEq,

Check whether an item is contained within this sequence.
Source§

fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>
where 'p: 'b,

Convert an item of the sequence into a MaybeRef.
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<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
Source§

impl<T> OrderedSeq<'_, T> for T
where T: Clone,