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
impl TestCluster
Sourcepub fn with_cleanup_mode(self, cleanup_mode: CleanupMode) -> Self
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
impl TestCluster
Sourcepub fn create_database(
&self,
name: impl Into<DatabaseName>,
) -> BootstrapResult<()>
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")?;Sourcepub fn create_database_from_template(
&self,
name: impl Into<DatabaseName>,
template: impl Into<DatabaseName>,
) -> BootstrapResult<()>
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")?;Sourcepub fn drop_database(
&self,
name: impl Into<DatabaseName>,
) -> BootstrapResult<()>
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")?;Sourcepub fn database_exists(
&self,
name: impl Into<DatabaseName>,
) -> BootstrapResult<bool>
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")?);Sourcepub fn ensure_template_exists<F>(
&self,
name: impl Into<DatabaseName>,
setup_fn: F,
) -> BootstrapResult<()>
pub fn ensure_template_exists<F>( &self, name: impl Into<DatabaseName>, setup_fn: F, ) -> 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")?;Sourcepub fn temporary_database(
&self,
name: impl Into<DatabaseName>,
) -> BootstrapResult<TemporaryDatabase>
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 scopeSourcepub fn temporary_database_from_template(
&self,
name: impl Into<DatabaseName>,
template: impl Into<DatabaseName>,
) -> BootstrapResult<TemporaryDatabase>
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 scopeSource§impl TestCluster
impl TestCluster
Sourcepub fn new() -> BootstrapResult<Self>
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.
Sourcepub fn new_split() -> BootstrapResult<(ClusterHandle, ClusterGuard)>
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:
ClusterHandle:Send + Synchandle for accessing the clusterClusterGuard:!Sendguard managing shutdown and environment
§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>§
Sourcepub fn settings(&self) -> &Settings
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");Sourcepub fn environment(&self) -> &TestBootstrapEnvironment
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();Sourcepub fn bootstrap(&self) -> &TestBootstrapSettings
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();Sourcepub fn connection(&self) -> TestClusterConnection
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(),
);Sourcepub fn create_database(
&self,
name: impl Into<DatabaseName>,
) -> BootstrapResult<()>
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.
Sourcepub fn create_database_from_template(
&self,
name: impl Into<DatabaseName>,
template: impl Into<DatabaseName>,
) -> BootstrapResult<()>
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.
Sourcepub fn drop_database(
&self,
name: impl Into<DatabaseName>,
) -> BootstrapResult<()>
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.
Sourcepub fn database_exists(
&self,
name: impl Into<DatabaseName>,
) -> BootstrapResult<bool>
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.
Sourcepub fn ensure_template_exists<F>(
&self,
name: impl Into<DatabaseName>,
setup_fn: F,
) -> BootstrapResult<()>
pub fn ensure_template_exists<F>( &self, name: impl Into<DatabaseName>, setup_fn: F, ) -> 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.
Sourcepub fn temporary_database(
&self,
name: impl Into<DatabaseName>,
) -> BootstrapResult<TemporaryDatabase>
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.
Sourcepub fn temporary_database_from_template(
&self,
name: impl Into<DatabaseName>,
template: impl Into<DatabaseName>,
) -> BootstrapResult<TemporaryDatabase>
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
impl Debug for TestCluster
Source§impl Deref for TestCluster
Provides transparent access to ClusterHandle methods.
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.
Auto Trait Implementations§
impl !Freeze for TestCluster
impl !RefUnwindSafe for TestCluster
impl !Send for TestCluster
impl !Sync for TestCluster
impl Unpin for TestCluster
impl !UnwindSafe for TestCluster
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read moreSource§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Source§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Source§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Source§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
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 bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
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>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
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 rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
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 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.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
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);