Root

Struct Root 

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

Root object for sending the initialize message to the Playwright server

This is an internal object not exposed to end users. It exists solely to send the initialize message to the server during connection setup.

§Protocol Flow

When initialize() is called:

  1. Sends initialize message with sdkLanguage: "rust"
  2. Server creates BrowserType objects (sends __create__ messages)
  3. Server creates Playwright object (sends __create__ message)
  4. Server responds with Playwright GUID: { "playwright": { "guid": "..." } }
  5. All objects are now in the connection’s object registry

The Root object has an empty GUID ("") and is not registered in the object registry. It’s discarded after initialization completes.

§Example

// Create root object with connection
let root = Root::new(connection.clone());

// Send initialize message to server
let response = root.initialize().await?;

// Verify Playwright GUID is returned
let playwright_guid = response["playwright"]["guid"]
    .as_str()
    .expect("Missing playwright.guid");
assert!(!playwright_guid.is_empty());
assert!(playwright_guid.contains("playwright"));

// Verify response contains BrowserType objects
assert!(response["playwright"].is_object());

See:

Implementations§

Source§

impl Root

Source

pub fn new(connection: Arc<dyn ConnectionLike>) -> Self

Creates a new Root object

§Arguments
  • connection - The connection to the Playwright server
Source

pub async fn initialize(&self) -> Result<Value>

Send the initialize message to the Playwright server

This is a synchronous request that blocks until the server responds. By the time the response arrives, all protocol objects (Playwright, BrowserType, etc.) will have been created and registered.

§Returns

The server response containing the Playwright object GUID:

{
  "playwright": {
    "guid": "playwright"
  }
}
§Errors

Returns error if:

  • Message send fails
  • Server returns protocol error
  • Connection is closed

Trait Implementations§

Source§

impl ChannelOwner for Root

Source§

fn guid(&self) -> &str

Returns the unique GUID for this object. Read more
Source§

fn type_name(&self) -> &str

Returns the protocol type name (e.g., “Browser”, “Page”).
Source§

fn parent(&self) -> Option<Arc<dyn ChannelOwner>>

Returns the parent object, if any. Read more
Source§

fn connection(&self) -> Arc<dyn ConnectionLike>

Returns the connection this object belongs to.
Source§

fn initializer(&self) -> &Value

Returns the raw initializer JSON from the server. Read more
Source§

fn channel(&self) -> &Channel

Returns the channel for RPC communication.
Source§

fn dispose(&self, reason: DisposeReason)

Disposes this object and all its children. Read more
Source§

fn adopt(&self, child: Arc<dyn ChannelOwner>)

Adopts a child object (moves from old parent to this parent). Read more
Source§

fn add_child(&self, guid: Arc<str>, child: Arc<dyn ChannelOwner>)

Adds a child object to this parent’s registry. Read more
Source§

fn remove_child(&self, guid: &str)

Removes a child object from this parent’s registry. Read more
Source§

fn on_event(&self, method: &str, params: Value)

Handles a protocol event sent to this object. Read more
Source§

fn was_collected(&self) -> bool

Returns true if this object was garbage collected.
Source§

fn as_any(&self) -> &dyn Any

Enables downcasting to concrete types. Read more
Source§

impl Debug for Root

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Root

§

impl !RefUnwindSafe for Root

§

impl Send for Root

§

impl Sync for Root

§

impl Unpin for Root

§

impl !UnwindSafe for Root

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, 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<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