Skip to main content

TestCluster

Struct TestCluster 

Source
pub struct TestCluster { /* private fields */ }
Expand description

Embedded PostgreSQL instance whose lifecycle follows Rust’s drop semantics.

TestCluster combines a ClusterHandle (for cluster access) with a ClusterGuard (for lifecycle management). For most use cases, this combined type is the simplest option.

§Send-Safe Patterns

TestCluster is !Send because it contains environment guards that must be dropped on the creating thread. For patterns requiring Send (such as OnceLock or rstest timeouts), use new_split() to obtain a Send-safe ClusterHandle:

use std::sync::OnceLock;
use pg_embedded_setup_unpriv::{ClusterHandle, TestCluster};

static SHARED: OnceLock<ClusterHandle> = OnceLock::new();

fn shared_cluster() -> &'static ClusterHandle {
    SHARED.get_or_init(|| {
        let (handle, guard) = TestCluster::new_split()
            .expect("cluster bootstrap failed");
        // Forget the guard to prevent shutdown on drop
        std::mem::forget(guard);
        handle
    })
}

Implementations§

Source§

impl TestCluster

Source

pub fn with_cleanup_mode(self, cleanup_mode: CleanupMode) -> Self

Overrides the cleanup mode used when the cluster is dropped.

§Examples
use pg_embedded_setup_unpriv::{CleanupMode, TestCluster};

let cluster = TestCluster::new()?.with_cleanup_mode(CleanupMode::Full);
Source§

impl TestCluster

Source

pub fn create_database( &self, name: impl Into<DatabaseName>, ) -> BootstrapResult<()>

Creates a new database with the given name.

Delegates to crate::TestClusterConnection::create_database.

§Errors

Returns an error if the database already exists or if the connection fails.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let cluster = TestCluster::new()?;
cluster.create_database("my_test_db")?;
Source

pub fn create_database_from_template( &self, name: impl Into<DatabaseName>, template: impl Into<DatabaseName>, ) -> BootstrapResult<()>

Creates a new database by cloning an existing template.

Delegates to crate::TestClusterConnection::create_database_from_template.

§Errors

Returns an error if the target database already exists, the template does not exist, the template has active connections, or if the connection fails.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let cluster = TestCluster::new()?;
cluster.create_database("my_template")?;
// ... run migrations on my_template ...
cluster.create_database_from_template("test_db", "my_template")?;
Source

pub fn drop_database( &self, name: impl Into<DatabaseName>, ) -> BootstrapResult<()>

Drops an existing database.

Delegates to crate::TestClusterConnection::drop_database.

§Errors

Returns an error if the database does not exist, has active connections, or if the connection fails.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let cluster = TestCluster::new()?;
cluster.create_database("temp_db")?;
cluster.drop_database("temp_db")?;
Source

pub fn database_exists( &self, name: impl Into<DatabaseName>, ) -> BootstrapResult<bool>

Checks whether a database with the given name exists.

Delegates to crate::TestClusterConnection::database_exists.

§Errors

Returns an error if the connection fails.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let cluster = TestCluster::new()?;
assert!(cluster.database_exists("postgres")?);
assert!(!cluster.database_exists("nonexistent")?);
Source

pub fn ensure_template_exists<F>( &self, name: impl Into<DatabaseName>, setup_fn: F, ) -> BootstrapResult<()>
where F: FnOnce(&str) -> BootstrapResult<()>,

Ensures a template database exists, creating it if necessary.

Delegates to crate::TestClusterConnection::ensure_template_exists.

§Errors

Returns an error if database creation fails or if setup_fn returns an error.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let cluster = TestCluster::new()?;

// Ensure template exists, running migrations if needed
cluster.ensure_template_exists("my_template", |db_name| {
    // Run migrations on the newly created template database
    Ok(())
})?;

// Clone the template for each test
cluster.create_database_from_template("test_db_1", "my_template")?;
Source

pub fn temporary_database( &self, name: impl Into<DatabaseName>, ) -> BootstrapResult<TemporaryDatabase>

Creates a temporary database that is dropped when the guard is dropped.

Delegates to crate::TestClusterConnection::temporary_database.

§Errors

Returns an error if the database already exists or if the connection fails.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let cluster = TestCluster::new()?;
let temp_db = cluster.temporary_database("my_temp_db")?;

// Database is dropped automatically when temp_db goes out of scope
Source

pub fn temporary_database_from_template( &self, name: impl Into<DatabaseName>, template: impl Into<DatabaseName>, ) -> BootstrapResult<TemporaryDatabase>

Creates a temporary database from a template.

Delegates to crate::TestClusterConnection::temporary_database_from_template.

§Errors

Returns an error if the target database already exists, the template does not exist, the template has active connections, or if the connection fails.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let cluster = TestCluster::new()?;
cluster.ensure_template_exists("migrated_template", |_| Ok(()))?;

let temp_db = cluster.temporary_database_from_template("test_db", "migrated_template")?;

// Database is dropped automatically when temp_db goes out of scope
Source§

impl TestCluster

Source

pub fn new() -> BootstrapResult<Self>

Boots a PostgreSQL instance configured by bootstrap_for_tests.

The constructor blocks until the underlying server process is running and returns an error when startup fails.

§Errors

Returns an error if the bootstrap configuration cannot be prepared or if starting the embedded cluster fails.

Source

pub fn new_split() -> BootstrapResult<(ClusterHandle, ClusterGuard)>

Boots a PostgreSQL instance and returns a separate handle and guard.

This constructor is useful for patterns requiring Send, such as shared cluster fixtures with OnceLock or rstest fixtures with timeouts.

§Returns

A tuple of:

§Errors

Returns an error if the bootstrap configuration cannot be prepared or if starting the embedded cluster fails.

§Examples
§Shared Cluster with OnceLock

For shared clusters that run for the entire process lifetime, forget the guard to prevent shutdown:

use std::sync::OnceLock;
use pg_embedded_setup_unpriv::{ClusterHandle, TestCluster};

static SHARED: OnceLock<ClusterHandle> = OnceLock::new();

fn shared_cluster() -> &'static ClusterHandle {
    SHARED.get_or_init(|| {
        let (handle, guard) = TestCluster::new_split()
            .expect("cluster bootstrap failed");
        // Forget the guard to prevent shutdown on drop
        std::mem::forget(guard);
        handle
    })
}

Warning: Dropping the guard shuts down the cluster. Do not use the handle after the guard has been dropped unless the guard was forgotten.

Methods from Deref<Target = ClusterHandle>§

Source

pub fn settings(&self) -> &Settings

Returns the prepared PostgreSQL settings for the running cluster.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let (handle, _guard) = TestCluster::new_split()?;
let url = handle.settings().url("my_database");
Source

pub fn environment(&self) -> &TestBootstrapEnvironment

Returns the environment required for clients to interact with the cluster.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let (handle, _guard) = TestCluster::new_split()?;
let env = handle.environment();
Source

pub fn bootstrap(&self) -> &TestBootstrapSettings

Returns the bootstrap metadata captured when the cluster was started.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let (handle, _guard) = TestCluster::new_split()?;
let bootstrap = handle.bootstrap();
Source

pub fn connection(&self) -> TestClusterConnection

Returns helper methods for constructing connection artefacts.

§Examples
use pg_embedded_setup_unpriv::TestCluster;

let (handle, _guard) = TestCluster::new_split()?;
let metadata = handle.connection().metadata();
println!(
    "postgresql://{}:***@{}:{}/postgres",
    metadata.superuser(),
    metadata.host(),
    metadata.port(),
);
Source

pub fn create_database( &self, name: impl Into<DatabaseName>, ) -> BootstrapResult<()>

Creates a new database with the given name.

See TestClusterConnection::create_database for details.

§Errors

Returns an error if the database already exists or if the connection fails.

Source

pub fn create_database_from_template( &self, name: impl Into<DatabaseName>, template: impl Into<DatabaseName>, ) -> BootstrapResult<()>

Creates a new database by cloning an existing template.

See TestClusterConnection::create_database_from_template for details.

§Errors

Returns an error if the target database already exists, the template does not exist, or the connection fails.

Source

pub fn drop_database( &self, name: impl Into<DatabaseName>, ) -> BootstrapResult<()>

Drops an existing database.

See TestClusterConnection::drop_database for details.

§Errors

Returns an error if the database does not exist or the connection fails.

Source

pub fn database_exists( &self, name: impl Into<DatabaseName>, ) -> BootstrapResult<bool>

Checks whether a database with the given name exists.

See TestClusterConnection::database_exists for details.

§Errors

Returns an error if the connection fails.

Source

pub fn ensure_template_exists<F>( &self, name: impl Into<DatabaseName>, setup_fn: F, ) -> BootstrapResult<()>
where F: FnOnce(&str) -> BootstrapResult<()>,

Ensures a template database exists, creating it if necessary.

See TestClusterConnection::ensure_template_exists for details.

§Errors

Returns an error if database creation fails or if setup_fn returns an error.

Source

pub fn temporary_database( &self, name: impl Into<DatabaseName>, ) -> BootstrapResult<TemporaryDatabase>

Creates a temporary database that is dropped when the guard is dropped.

See TestClusterConnection::temporary_database for details.

§Errors

Returns an error if the database already exists or the connection fails.

Source

pub fn temporary_database_from_template( &self, name: impl Into<DatabaseName>, template: impl Into<DatabaseName>, ) -> BootstrapResult<TemporaryDatabase>

Creates a temporary database from a template.

See TestClusterConnection::temporary_database_from_template for details.

§Errors

Returns an error if the target database already exists, the template does not exist, or the connection fails.

Trait Implementations§

Source§

impl Debug for TestCluster

Source§

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

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

impl Deref for TestCluster

Provides transparent access to ClusterHandle methods.

This allows TestCluster to be used interchangeably with ClusterHandle for all read-only operations like settings(), connection(), etc.

Source§

type Target = ClusterHandle

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<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> 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.
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
Source§

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