Module handle

Module handle 

Source
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_version

Structs§

BrowserHandle
RAII handle for browser instances.