1pub mod error;
13
14#[cfg(feature = "render")]
15pub mod backend;
16#[cfg(feature = "render")]
17pub mod browser;
18#[cfg(feature = "render")]
19pub mod page;
20#[cfg(feature = "render")]
21pub mod runtime;
22#[cfg(feature = "render")]
23pub mod screenshot;
24
25pub use error::RenderError;
26
27#[cfg(feature = "render")]
28pub use backend::BrowserBackend;
29#[cfg(feature = "render")]
30pub use browser::Browser;
31#[cfg(feature = "render")]
32pub use page::{render_html, render_page};
33#[cfg(feature = "render")]
34pub use runtime::{ObservedResource, ObservedResourceKind, RenderedPage};
35#[cfg(feature = "render")]
36pub use screenshot::{DESKTOP, MOBILE, Screenshot, TABLET, Viewport, capture_viewports};
37
38#[cfg(not(feature = "render"))]
44pub fn not_available() -> Result<(), RenderError> {
45 Err(RenderError::FeatureNotEnabled)
46}
47
48#[cfg(not(feature = "render"))]
49pub mod backend {
51 #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
53 pub enum BrowserBackend {
54 Chrome,
56 Lightpanda,
58 }
59}
60
61#[cfg(not(feature = "render"))]
62pub mod browser {
64 pub struct Browser;
66}
67
68#[cfg(not(feature = "render"))]
69pub mod screenshot {
71 #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
73 pub struct Viewport {
74 pub name: &'static str,
76 pub width: u32,
78 pub height: u32,
80 }
81 pub const MOBILE: Viewport = Viewport {
83 name: "mobile",
84 width: 390,
85 height: 844,
86 };
87 pub const TABLET: Viewport = Viewport {
89 name: "tablet",
90 width: 768,
91 height: 1024,
92 };
93 pub const DESKTOP: Viewport = Viewport {
95 name: "desktop",
96 width: 1440,
97 height: 900,
98 };
99}
100
101#[cfg(not(feature = "render"))]
102pub use backend::BrowserBackend;
103#[cfg(not(feature = "render"))]
104pub use browser::Browser;
105#[cfg(not(feature = "render"))]
106pub use screenshot::{DESKTOP, MOBILE, TABLET, Viewport};