This commit is contained in:
parent
fb2f6079cc
commit
934c94cb5c
50 changed files with 10464 additions and 758 deletions
41
shared/interfaces/Catcrafts.Shared.cppm
Normal file
41
shared/interfaces/Catcrafts.Shared.cppm
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
catcrafts.net
|
||||
Copyright (C) 2026 Catcrafts
|
||||
|
||||
The source code of this website is made available for viewing purposes only.
|
||||
No permission is granted to copy, modify, distribute, or create derivative works.
|
||||
*/
|
||||
|
||||
// Catcrafts.Shared — the target-neutral half of the site.
|
||||
//
|
||||
// Everything here compiles for BOTH wasm32-wasip1 (the browser app) and the
|
||||
// host triple (the server that will render the same pages for crawlers and
|
||||
// no-JS clients). That is the entire point: one set of page renderers, not
|
||||
// two that drift.
|
||||
//
|
||||
// THE RULE: this module imports `std` and its own partitions. Nothing else.
|
||||
//
|
||||
// Not a style preference — Crafter.Build's dependency scanner does not respect
|
||||
// `#ifdef` around `import` statements (Crafter.Graphics/project.cpp:116-121
|
||||
// documents the same constraint), so an `#ifdef`-guarded
|
||||
// `import Crafter.Graphics;` in here would still force Crafter.Graphics onto
|
||||
// the native build, where it cannot compile. There is no conditional-import
|
||||
// escape hatch, so the boundary has to be absolute.
|
||||
//
|
||||
// Consequently Catcrafts.Shared is a pure function:
|
||||
//
|
||||
// (route, data) -> RenderedPage
|
||||
//
|
||||
// Each host does its own I/O — fetch/DOM on wasm, sockets/SQLite on native —
|
||||
// and calls in with plain data.
|
||||
|
||||
export module Catcrafts.Shared;
|
||||
|
||||
export import :Html;
|
||||
export import :Json;
|
||||
export import :Form;
|
||||
export import :Model;
|
||||
export import :Content;
|
||||
export import :Money;
|
||||
export import :Route;
|
||||
export import :Views;
|
||||
Loading…
Reference in a new issue