Expand description
RAII handle for browser instances.
This module provides BrowserHandle, which wraps a browser instance
and automatically returns it to the pool when dropped.
§Overview
The handle implements the RAII (Resource Acquisition Is Initialization) pattern to ensure browsers are always returned to the pool, even if:
- Your code returns early
- An error occurs
- A panic happens
§Usage Pattern
ⓘ
use html2pdf_api::BrowserPool;
let pool = BrowserPool::builder()
.factory(Box::new(ChromeBrowserFactory::with_defaults()))
.build()?;
// Get a browser handle
let browser = pool.get()?;
// Use it like a regular Browser (via Deref)
let tab = browser.new_tab()?;
tab.navigate_to("https://example.com")?;
// Browser automatically returned when `browser` goes out of scope§Deref Behavior
BrowserHandle implements Deref<Target = Browser>,
allowing transparent access to all Browser methods:
ⓘ
let browser = pool.get()?;
// These all work directly on the handle:
let tab = browser.new_tab()?; // Browser::new_tab
let tabs = browser.get_tabs(); // Browser::get_tabs
let version = browser.get_version()?; // Browser::get_versionStructs§
- Browser
Handle - RAII handle for browser instances.