blitz_dom/
config.rs

1use crate::{HtmlParserProvider, net::Resource};
2use blitz_traits::{
3    navigation::NavigationProvider,
4    net::NetProvider,
5    shell::{ShellProvider, Viewport},
6};
7use parley::FontContext;
8use std::sync::Arc;
9
10/// Options used when constructing a [`BaseDocument`](crate::BaseDocument)
11#[derive(Default)]
12pub struct DocumentConfig {
13    /// The initial `Viewport`
14    pub viewport: Option<Viewport>,
15    /// The base url which relative URLs are resolved against
16    pub base_url: Option<String>,
17    /// User Agent stylesheets
18    pub ua_stylesheets: Option<Vec<String>>,
19    /// Net provider to handle network requests for resources
20    pub net_provider: Option<Arc<dyn NetProvider<Resource>>>,
21    /// Navigation provider to handle link clicks and form submissions
22    pub navigation_provider: Option<Arc<dyn NavigationProvider>>,
23    /// Shell provider to redraw requests, clipboard, etc
24    pub shell_provider: Option<Arc<dyn ShellProvider>>,
25    /// HTML parser provider. Used to parse HTML for setInnerHTML
26    pub html_parser_provider: Option<Arc<dyn HtmlParserProvider>>,
27    /// Parley `FontContext`
28    pub font_ctx: Option<FontContext>,
29}