Skip to main content

PageConfig

Struct PageConfig 

Source
pub struct PageConfig<'a> {
    pub title: &'a str,
    pub route_pattern: &'a str,
    pub manifest: &'a AssetManifest,
    pub config_script: Option<&'a str>,
    pub config_json: Option<&'a Value>,
    pub body_class: Option<&'a str>,
    pub personality_css: Option<&'a str>,
    pub body_prefix: Option<&'a str>,
    pub render_mode: RenderMode,
    pub ir_module: Option<&'a IrModule>,
    pub slots: Option<&'a SlotData>,
}
Expand description

Configuration for rendering an HTML page with external assets.

Fields§

§title: &'a str

Text for the page’s <title>, HTML-escaped on the way out.

§route_pattern: &'a str

The route this page was matched by, used to look up its assets in the manifest (e.g. /users/:id).

§manifest: &'a AssetManifest

Build manifest naming the content-hashed JS/CSS/font/IR files.

§config_script: Option<&'a str>

Optional inline <script> content (e.g. window.__CONFIG__ = {...}).

RAW, TRUSTED ESCAPE HATCH. The content is emitted into an inline <script> with no JavaScript escaping. </script and <!-- are neutralized so the value cannot break out of the element, but that is not the same as making it safe: a " or \ arriving from untrusted data still yields nonce-blessed script execution inside your own page.

Use PageConfig::config_json for anything derived from user input.

§config_json: Option<&'a Value>

Optional server data to expose to the client as window.__FORMA_CONFIG__.

This is the safe path: the value is serialized by serde_json with every < escaped, which cannot be misused no matter what the data contains. Prefer it over PageConfig::config_script.

§body_class: Option<&'a str>

Optional class attribute for <body>, HTML-escaped.

§personality_css: Option<&'a str>

Optional inline <style> for personality/theme overrides.

Emitted inside a <style> element. </ is neutralized (as a CSS escape, losslessly) so the value cannot break out; everything else is passed through as CSS.

§body_prefix: Option<&'a str>

Optional extra HTML before <div id="app">.

RAW, TRUSTED HTML. Interpolated verbatim with no escaping — that is the point of the field (callers use it to emit their own markup, e.g. a hand-rendered __forma_islands block). Never build it from untrusted data.

§render_mode: RenderMode

Whether to server-render the body or ship an empty #app shell.

§ir_module: Option<&'a IrModule>

Pre-parsed IR module for Phase 2 SSR

§slots: Option<&'a SlotData>

Slot data for Phase 2 SSR

Trait Implementations§

Source§

impl<'a> Debug for PageConfig<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for PageConfig<'a>

§

impl<'a> RefUnwindSafe for PageConfig<'a>

§

impl<'a> Send for PageConfig<'a>

§

impl<'a> Sync for PageConfig<'a>

§

impl<'a> Unpin for PageConfig<'a>

§

impl<'a> UnsafeUnpin for PageConfig<'a>

§

impl<'a> UnwindSafe for PageConfig<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more