playwright/
api.rs

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        // TODO: FusedStream + Sink
34        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// Artifact
98// BindingCall
99// Stream
100
101// Android
102// AndroidDevice
103// androidinput
104// androidsocket
105// androidwebview
106// browserserver
107// cdpsession
108// coverage
109// electron
110// electronapplication
111// logger
112// websocketframe