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 screenshot;
22
23pub use error::RenderError;
24
25#[cfg(feature = "render")]
26pub use backend::BrowserBackend;
27#[cfg(feature = "render")]
28pub use browser::Browser;
29#[cfg(feature = "render")]
30pub use page::render_html;
31#[cfg(feature = "render")]
32pub use screenshot::{DESKTOP, MOBILE, Screenshot, TABLET, Viewport, capture_viewports};
33
34#[cfg(not(feature = "render"))]
40pub fn not_available() -> Result<(), RenderError> {
41 Err(RenderError::FeatureNotEnabled)
42}
43
44#[cfg(not(feature = "render"))]
45pub mod backend {
47 #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
49 pub enum BrowserBackend {
50 Chrome,
52 Lightpanda,
54 }
55}
56
57#[cfg(not(feature = "render"))]
58pub mod browser {
60 pub struct Browser;
62}
63
64#[cfg(not(feature = "render"))]
65pub mod screenshot {
67 #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
69 pub struct Viewport {
70 pub name: &'static str,
72 pub width: u32,
74 pub height: u32,
76 }
77 pub const MOBILE: Viewport = Viewport {
79 name: "mobile",
80 width: 390,
81 height: 844,
82 };
83 pub const TABLET: Viewport = Viewport {
85 name: "tablet",
86 width: 768,
87 height: 1024,
88 };
89 pub const DESKTOP: Viewport = Viewport {
91 name: "desktop",
92 width: 1440,
93 height: 900,
94 };
95}
96
97#[cfg(not(feature = "render"))]
98pub use backend::BrowserBackend;
99#[cfg(not(feature = "render"))]
100pub use browser::Browser;
101#[cfg(not(feature = "render"))]
102pub use screenshot::{DESKTOP, MOBILE, TABLET, Viewport};