1macro_rules! setter {
2 (
3 $(
4 $(#[$meta:ident $($args:tt)*])*
5 $field:ident : Option<$t:ty>
6 ),+
7 ) => {
8 $(
9 paste::paste! {
10 #[allow(clippy::wrong_self_convention)]
11 $(#[$meta $($args)*])*
12 pub fn [<$field>](mut self, x:$t) -> Self {
13 self.args.$field = Some(x);
14 self
15 }
16 }
17 )*
18 $(
19 paste::paste! {
20 pub fn [<clear_$field>](mut self) -> Self {
21 self.args.$field = None;
22 self
23 }
24 }
25 )*
26 };
27}
28
29#[doc(hidden)]
30#[macro_export]
31macro_rules! subscribe_event {
32 () => {
33 pub fn subscribe_event(
35 &self
36 ) -> Result<
37 impl futures::stream::Stream<
38 Item = Result<Event, tokio_stream::wrappers::errors::BroadcastStreamRecvError>
39 >,
40 Error
41 > {
42 use futures::stream::StreamExt;
43 use tokio_stream::wrappers::BroadcastStream;
44 let stream = BroadcastStream::new(upgrade(&self.inner)?.subscribe_event());
45 Ok(stream.map(|e| e.map(Event::from)))
46 }
47 };
48}
49
50pub mod input_device;
51pub mod playwright;
52
53pub mod accessibility;
54pub mod browser;
55pub mod browser_context;
56pub mod browser_type;
57pub mod console_message;
58pub mod dialog;
59pub mod download;
60pub mod element_handle;
61pub mod file_chooser;
62pub mod frame;
63pub mod js_handle;
64pub mod page;
65pub mod request;
66pub mod response;
67pub mod route;
68pub mod selectors;
69pub mod video;
70pub mod websocket;
71pub mod worker;
72
73pub use crate::imp::{core::DateTime, utils::*};
74
75pub use self::playwright::Playwright;
76pub use accessibility::Accessibility;
77pub use browser::Browser;
78pub use browser_context::BrowserContext;
79pub use browser_type::BrowserType;
80pub use console_message::ConsoleMessage;
81pub use dialog::Dialog;
82pub use download::Download;
83pub use element_handle::ElementHandle;
84pub use file_chooser::FileChooser;
85pub use frame::Frame;
86pub use input_device::{Keyboard, Mouse, TouchScreen};
87pub use js_handle::JsHandle;
88pub use page::Page;
89pub use request::Request;
90pub use response::Response;
91pub use route::Route;
92pub use selectors::Selectors;
93pub use video::Video;
94pub use websocket::WebSocket;
95pub use worker::Worker;
96
97