Skip to main content

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 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 UnsafeUnpin 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> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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