secunit_core/wisp/render/
mod.rs1use std::path::{Path, PathBuf};
6
7use anyhow::{bail, Result};
8
9use super::{doc::WispDoc, Renderer};
10
11pub mod typst;
12
13pub struct RenderRequest<'a> {
15 pub doc: &'a WispDoc,
16 pub template_dir: &'a Path,
18 pub typst_source: &'a str,
20 pub output: &'a Path,
22}
23
24pub struct RenderResult {
26 pub pages: Option<u32>,
28 pub wrote_pdf: bool,
30 pub intermediate: Option<PathBuf>,
32}
33
34pub fn render(renderer: Renderer, req: &RenderRequest) -> Result<RenderResult> {
36 match renderer {
37 Renderer::Typst => typst::render(req),
38 Renderer::Weasyprint | Renderer::Chromium => bail!(
39 "the `{renderer}` HTML render backend is not wired yet — use the default \
40 `typst` renderer (it needs no external toolchain)"
41 ),
42 }
43}