Skip to main content

AdminAuditLog

Struct AdminAuditLog 

Source
pub struct AdminAuditLog {
    pub id: i64,
    pub actor_user_id: i64,
    pub action: String,
    pub model: String,
    pub object_id: Option<String>,
    pub diff_summary: String,
    pub created_at: DateTime<Utc>,
}
Expand description

One entry in the admin audit trail.

Append-only via log. The admin surfaces the table read-only; every column carries #[umbral(noedit)] so the form path can’t mutate rows even if someone navigates directly to the edit URL.

Fields§

§id: i64§actor_user_id: i64

FK to auth_user.

§action: String

One of: "create" | "update" | "delete" | "action:<key>".

§model: String

SQL table name the operation touched.

§object_id: Option<String>

PK of the affected row, as TEXT, NULL for bulk / non-row operations (gaps3 #59).

Text, not i64, for the same reason the session table stores its user id as text: a model’s primary key may be an i64, a String or a Uuid. As an INTEGER this column could not address a non-i64 row at all — the object-history page 400’d for every row of such a model, and every admin write logged object_id = NULL, including the password-change audit. An audit trail that cannot name the object it audited is not an audit trail.

§diff_summary: String

Short human description, e.g. "created Post #42".

§created_at: DateTime<Utc>

Implementations§

Source§

impl AdminAuditLog

Source

pub fn objects() -> Manager<Self>

Source§

impl AdminAuditLog

Source

pub const ID: IntCol<Self> = admin_audit_log::ID

Source

pub const ACTOR_USER_ID: IntCol<Self> = admin_audit_log::ACTOR_USER_ID

Source

pub const ACTION: StrCol<Self> = admin_audit_log::ACTION

Source

pub const MODEL: StrCol<Self> = admin_audit_log::MODEL

Source

pub const OBJECT_ID: NullableStrCol<Self> = admin_audit_log::OBJECT_ID

Source

pub const DIFF_SUMMARY: StrCol<Self> = admin_audit_log::DIFF_SUMMARY

Source

pub const CREATED_AT: DateTimeCol<Self> = admin_audit_log::CREATED_AT

Trait Implementations§

Source§

impl Clone for AdminAuditLog

Source§

fn clone(&self) -> AdminAuditLog

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 Debug for AdminAuditLog

Source§

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

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

impl<'de> Deserialize<'de> for AdminAuditLog

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<AdminAuditLog> for AuditEntry

Source§

fn from(row: AdminAuditLog) -> Self

Converts to this type from the input type.
Source§

impl<'a, R: Row> FromRow<'a, R> for AdminAuditLog
where &'a str: ColumnIndex<R>, i64: Decode<'a, R::Database> + Type<R::Database>, String: Decode<'a, R::Database> + Type<R::Database>, Option<String>: Decode<'a, R::Database> + Type<R::Database>, DateTime<Utc>: Decode<'a, R::Database> + Type<R::Database>,

Source§

fn from_row(__row: &'a R) -> Result<Self>

Source§

impl HydrateRelated for AdminAuditLog

Source§

fn fk_id_for(&self, field_name: &str) -> Option<Value>

Return the raw FK value stored in the field named field_name, or None if the field doesn’t exist on this model or is not a FK. Read more
Source§

fn hydrate_fk(&mut self, field_name: &str, row: &Value)

Set ForeignKey<U>.resolved for the field named field_name by deserialising row as the target model type. Read more
Source§

fn set_m2m_parent_ids(&mut self)

Set the parent_id cache on every M2M<U> field this model owns. Closes the second BUG-16 gap: without this, m2m.add(&t) silently writes a junction row with parent_id = 0 because the macro skips M2M fields in the FromRow decode path. Read more
Source§

fn pk_as_json(&self) -> Option<Value>

Return this row’s primary key as a serde_json::Value, whatever the PK type — i64, String, uuid::Uuid, a custom newtype. The relation-hydration paths (prefetch_related, reverse-FK and reverse-OneToOne collection) bucket children by the parent’s PK, and keying those buckets on a Value (canonicalised via crate::orm::pk_key) lets UUID- and slug-PK models flow through too, not just i64. Read more
Source§

fn set_m2m_resolved_json(&mut self, field_name: &str, rows: Vec<Value>)

Attach a list of pre-fetched child rows to the named M2M<U> field’s resolved slot. Called by QuerySet::prefetch_related (gap #19) after a batched JOIN through the junction table returns one Vec per parent. Read more
Source§

fn set_reverse_fk_resolved_json(&mut self, field_name: &str, rows: Vec<Value>)

Gap #44 — attach a list of pre-fetched child rows to the named ReverseSet<C> field’s resolved slot. Counterpart to set_m2m_resolved_json but for reverse-FK collections (one parent, many children pointing at it via a FK column). Read more
Source§

fn set_one_to_one_resolved_json(&mut self, field_name: &str, row: Option<Value>)

Reverse-OneToOne counterpart to set_reverse_fk_resolved_json. Called by prefetch_related with Some(child_json) when the runtime FK lookup found exactly one matching child, or None when no child matched (the slot still flips is_loaded() to true). Read more
Source§

fn take_pending_m2m_into(&mut self, _dest: &mut Self)

Move form-staged M2M pending ids from self into dest, field by field. The typed create() builds its INSERT from the caller’s instance, then reads a fresh row back from the DB (carrying the autoincremented PK) — the pending ids staged by the Form derive live on the caller’s instance, not the readback row. This hook transfers them across so write_pending_m2m on the readback row (which has the real parent_id seeded) finds them. Default: no-op for models with no M2M fields.
Source§

fn write_pending_m2m<'a>( &'a mut self, ) -> Pin<Box<dyn Future<Output = Result<(), WriteError>> + Send + 'a>>

Flush form-staged M2M selections to their junction tables after the parent row was inserted. The macro emits a body that walks this model’s M2M fields, reads parent_id + junction_table (seeded by set_m2m_parent_ids) and the pending child ids, and calls set_junction_dynamic. Default: no-op for models with no M2M fields. Read more
Source§

impl Model for AdminAuditLog

Source§

const NAME: &'static str = "AdminAuditLog"

The struct name, used by the migration engine (M5) to label snapshot entries and to map autodetected operations back to the model that produced them. The M3 derive emits the struct ident verbatim (“Post”, “Comment”, etc.).
Source§

const TABLE: &'static str = "admin_audit_log"

The SQL table name. M3’s derive defaults this to the snake_case of the struct name unless #[umbral(table = "...")] overrides it.
Source§

const APP_LABEL: &'static str = "app"

The app label (the owning plugin’s name) this model belongs to. Read more
Source§

const FIELDS: &'static [FieldSpec]

Static metadata for every field on the model. Read more
Source§

const DISPLAY: &'static str = "Audit log"

Human-readable display name for this model, used by the admin sidebar as the default label. Defaults to Self::NAME. Read more
Source§

const ICON: &'static str = "scroll-text"

Lucide icon slug shown next to this model in the admin sidebar. Defaults to "database". Any valid Lucide icon name works; unknown names are silently ignored by Lucide at render time. Read more
Source§

const DATABASE: Option<&'static str> = ::core::option::Option::None

Database alias this model lives on, when the app registers more than one pool via AppBuilder::database(...). None (the default) means “use whatever the owning plugin chose via Plugin::database(), or \"default\" if neither side overrode.” Read more
Source§

const SINGLETON: bool = false

Single-row-marker. When true, the admin auto-redirects the list view to the (sole) row’s edit form, hides the “+ New” button, and surfaces the model as a settings-style screen. The single-row settings model pattern. Set via #[umbral(singleton)] on the struct. Closes BUG-9 in bugs/tests/testBugs.md. Read more
Source§

const SOFT_DELETE: bool = false

Feature #72 — soft-delete marker. Set via #[umbral(soft_delete)] on the struct. When true, the framework treats this model as having a deleted_at: Option<DateTime<Utc>> column (which the user MUST declare — derive macros can’t add fields to the input struct), and: Read more
Source§

const AUDITED: bool = false

gaps3 #54 — #[umbral(audited)]. Every write records an umbral_audit row (who / when / which row / which fields changed).
Source§

const VIEW: Option<&'static str> = ::core::option::Option::None

features #73 — #[umbral(view = "SELECT ...")]. When set, this model is backed by a database VIEW rather than a table: the migration engine emits CREATE VIEW <table> AS <this SQL> and never a CREATE TABLE. Read more
Source§

const MATERIALIZED: bool = false

features #73 — #[umbral(materialized_view = "SELECT ...")]. Implies VIEW; additionally emits CREATE MATERIALIZED VIEW, whose rows are computed once and stored until you call refresh_view. Read more
Source§

const UNIQUE_TOGETHER: &'static [&'static [&'static str]]

Composite-UNIQUE constraints. Each inner slice names a constraint over the listed column names. Set via #[umbral(unique_together = [["a", "b"]])]. Closes BUG-6 in bugs/tests/testBugs.md. Default empty; the migration engine emits one UNIQUE (col1, col2) clause per inner group on CREATE TABLE.
Source§

const INDEXES: &'static [&'static [&'static str]]

Multi-column indexes. Each inner slice names an index over the listed columns. Set via #[umbral(indexes = [["tenant_id", "created_at"]])]. Closes BUG-7. Default empty; the migration engine emits CREATE INDEX IF NOT EXISTS idx_<table>_<col1>_<col2> after the CREATE TABLE. Single-column indexes stay on the field attribute (#[umbral(index)]).
Source§

const ORDERING: &'static [(&'static str, bool)]

Default ORDER BY clause, applied when a QuerySet terminates without an explicit order_by. Each tuple is (column_name, is_descending). Set via #[umbral(ordering = ["-published_at", "id"])] (leading - flips to DESC). Closes BUG-8. Default empty.
Source§

const SIGNAL_SKIP_FIELDS: &'static [&'static str]

Field names to STRIP from signal payloads (audit_2 core-app-config #10). Set per-field via #[umbral(signal_skip)]. The ORM signal emitters (pre/post_save, pre/post_delete, pre/post_update) serialize the whole row into the "instance" payload that fans out to every subscriber; a subscriber that logs or persists payloads (the natural audit-log shape) would otherwise copy password hashes, tokens, and PII into logs / secondary stores. Listed fields are removed from the serialized instance before it is emitted. Default empty (full row).
Source§

const M2M_RELATIONS: &'static [M2MRelationSpec]

Many-to-many relations declared on this model. Each entry names a field and its target model. The migration engine uses this to auto-generate junction tables; the admin uses it to render M2M pickers. Default empty.
Source§

const REVERSE_FK_RELATIONS: &'static [ReverseFkRelationSpec]

Gap #44 — reverse-FK collections declared on this model via #[umbral(reverse_fk = "<fk_col>")] pub <name>: ReverseSet<C>. Each entry tells prefetch_related how to fetch the children: SELECT * FROM <target_table> WHERE <fk_column> IN (parent_pks) then group by <fk_column> value, populate each parent’s ReverseSet.resolved. Default empty; the macro emits one entry per declared ReverseSet<C> field.
Source§

const ONE_TO_ONE_RELATIONS: &'static [OneToOneRelationSpec]

Reverse OneToOne accessors declared on this model via pub <name>: OneToOne<C> (no umbral attribute required). Unlike REVERSE_FK_RELATIONS, the FK column on the child is not named at macro time — prefetch_related looks it up at runtime by scanning the child’s FIELDS for the UNIQUE FK pointing back at this model’s table. Exactly one match required; 0 or 2+ matches surface a loud error naming the ambiguity.
Source§

type PrimaryKey = i64

The primary-key type. M2 supports i64 only; UUID lands later.
Source§

fn primary_key(&self) -> i64

Return the primary key of this instance.
Source§

fn table_name() -> &'static str

The SQL table name as a call — UserProfile::table_name()"profile". Read more
Source§

impl Serialize for AdminAuditLog

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

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> 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

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> 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ReverseRelations for T
where T: Model + HydrateRelated,

Source§

fn reverse<C>(&self) -> Result<QuerySet<C>, ReverseError>
where C: Model + HydrateRelated,

Build a chainable QuerySet<C> of the children of type C whose foreign key points at THIS instance. The FK column is discovered from C::FIELDS (the field whose fk_target == Self::TABLE): Read more
Source§

fn reverse_via<C>(&self, fk_col: &str) -> Result<QuerySet<C>, ReverseError>
where C: Model + HydrateRelated,

Like reverse, but with the FK column on C named explicitly — the escape hatch for when C has more than one FK to this parent. The column is validated to exist AND to be an FK to Self::TABLE.
Source§

impl<T> Same for T

Source§

type Output = T

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