跳转至

crates\nfarms-gui\src\plugins\stubs.rs

源码路径:crates\nfarms-gui\src\plugins\stubs.rs · 37 行

//! 占位渲染器 —— 现在**不再挂给任何页面**了。
//!
//! 34 页全部有真实现之后,`renderer_for` 里的 `_ => stubs::placeholder`
//! 变成了 unreachable pattern,于是那条兜底被删掉了(编译器替我们证明
//! 「一页都没漏」)。
//!
//! 留着这个函数有两个用处:
//!
//! 1. 测试里需要一个「随便什么渲染器」来构造 [`PageSpec`](super::PageSpec);
//! 2. 以后再新加一页,可以先把 `renderer_for` 那行写成 `stubs::placeholder`,
//!    程序立刻能跑 —— 比留个 `todo!()` 让它崩掉强。
//!
//! 它「还没做」这件事需要的信息全在 [`crate::pages::PageInfo`] 里,
//! 而当前页是 [`PageCtx::page`] 告诉我们的 —— 所以一个函数就够,不用二十个。
#![allow(dead_code)]

use super::PageCtx;
use super::ui;

pub fn placeholder(cx: &mut PageCtx<'_>) {
    let info = cx.page.info();
    ui::placeholder_body(cx.ui, info);

    // 顺手给一条「这一页在功能树里的位置」—— 免得用户看着侧栏的小字发懵
    cx.ui.add_space(12.0);
    ui::card(cx.ui, |ui| {
        ui::section(
            ui,
            info.group.nav(),
            info.group.note(),
        );
        ui.add_space(6.0);
        ui::kv(ui, "页面 id", info.id);
        ui::kv(ui, "图标", info.icon);
    });
}