Pages

Each page is a Rust module exporting pub fn page(FlowRequest) -> View, discovered from your pages directory.

Page module

use resuma::prelude::*;

pub fn page(_req: FlowRequest) -> View {
    view! {
        <main>
            <h1>"About"</h1>
            <p>"Rendered from about.rs"</p>
        </main>
    }
}

auto_pages

FlowApp scans the pages directory at startup and dispatches via PagesRegistry:

FlowApp::new()
    .auto_pages("src/pages", PagesRegistry)
    .serve(FlowServeOptions::default())
    .await

PagesRegistry

Generated by resuma routes --generate. Maps module names like docs::getting_started to page(req) functions.

// _registry.rs (generated)
impl FlowPageRegistry for PagesRegistry {
    fn render(&self, module: &str, req: FlowRequest) -> Option<View> {
        match module {
            "index" => Some(super::index::page(req)),
            "about" => Some(super::about::page(req)),
            _ => None,
        }
    }
}

Index routes

A directory with index.rs maps to the directory URL — blog/index.rs becomes /blog.