pub struct BrowserPoolConfigBuilder { /* private fields */ }Expand description
Builder for BrowserPoolConfig with validation.
Provides a fluent API for constructing validated configurations. All setter methods can be chained together.
§Example
use std::time::Duration;
use html2pdf_api::BrowserPoolConfigBuilder;
let config = BrowserPoolConfigBuilder::new()
.max_pool_size(10)
.warmup_count(5)
.browser_ttl(Duration::from_secs(7200))
.build()
.expect("Invalid configuration");§Validation
The build() method validates:
max_pool_sizemust be greater than 0warmup_countmust be dmax_pool_size
Implementations§
Source§impl BrowserPoolConfigBuilder
impl BrowserPoolConfigBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new builder with default values.
§Example
use html2pdf_api::BrowserPoolConfigBuilder;
let builder = BrowserPoolConfigBuilder::new();
let config = builder.build().unwrap();
// Has default values
assert_eq!(config.max_pool_size, 5);Sourcepub fn max_pool_size(self, size: usize) -> Self
pub fn max_pool_size(self, size: usize) -> Self
Sourcepub fn warmup_count(self, count: usize) -> Self
pub fn warmup_count(self, count: usize) -> Self
Set warmup count (must be d max_pool_size).
§Parameters
count- Number of browsers to pre-create during warmup.
§Example
use html2pdf_api::BrowserPoolConfigBuilder;
let config = BrowserPoolConfigBuilder::new()
.max_pool_size(10)
.warmup_count(5)
.build()
.unwrap();
assert_eq!(config.warmup_count, 5);Sourcepub fn ping_interval(self, interval: Duration) -> Self
pub fn ping_interval(self, interval: Duration) -> Self
Set health check interval.
§Parameters
interval- Duration between health check pings.
§Example
use std::time::Duration;
use html2pdf_api::BrowserPoolConfigBuilder;
let config = BrowserPoolConfigBuilder::new()
.ping_interval(Duration::from_secs(30))
.build()
.unwrap();
assert_eq!(config.ping_interval, Duration::from_secs(30));Sourcepub fn browser_ttl(self, ttl: Duration) -> Self
pub fn browser_ttl(self, ttl: Duration) -> Self
Set browser time-to-live before forced retirement.
§Parameters
ttl- Maximum lifetime for each browser instance.
§Example
use std::time::Duration;
use html2pdf_api::BrowserPoolConfigBuilder;
let config = BrowserPoolConfigBuilder::new()
.browser_ttl(Duration::from_secs(7200)) // 2 hours
.build()
.unwrap();
assert_eq!(config.browser_ttl, Duration::from_secs(7200));Sourcepub fn max_ping_failures(self, failures: u32) -> Self
pub fn max_ping_failures(self, failures: u32) -> Self
Sourcepub fn warmup_timeout(self, timeout: Duration) -> Self
pub fn warmup_timeout(self, timeout: Duration) -> Self
Set warmup timeout.
§Parameters
timeout- Maximum time allowed for warmup to complete.
§Example
use std::time::Duration;
use html2pdf_api::BrowserPoolConfigBuilder;
let config = BrowserPoolConfigBuilder::new()
.warmup_timeout(Duration::from_secs(120))
.build()
.unwrap();
assert_eq!(config.warmup_timeout, Duration::from_secs(120));Sourcepub fn build(self) -> Result<BrowserPoolConfig, String>
pub fn build(self) -> Result<BrowserPoolConfig, String>
Build and validate the configuration.
§Errors
- Returns error if
max_pool_sizeis 0 - Returns error if
warmup_count>max_pool_size
§Example
use html2pdf_api::BrowserPoolConfigBuilder;
// Valid configuration
let config = BrowserPoolConfigBuilder::new()
.max_pool_size(10)
.warmup_count(5)
.build();
assert!(config.is_ok());
// Invalid: pool size is 0
let config = BrowserPoolConfigBuilder::new()
.max_pool_size(0)
.build();
assert!(config.is_err());
// Invalid: warmup exceeds pool size
let config = BrowserPoolConfigBuilder::new()
.max_pool_size(5)
.warmup_count(10)
.build();
assert!(config.is_err());Trait Implementations§
Auto Trait Implementations§
impl Freeze for BrowserPoolConfigBuilder
impl RefUnwindSafe for BrowserPoolConfigBuilder
impl Send for BrowserPoolConfigBuilder
impl Sync for BrowserPoolConfigBuilder
impl Unpin for BrowserPoolConfigBuilder
impl UnwindSafe for BrowserPoolConfigBuilder
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> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
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<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);