- scaffold 14 placeholder crates (app, db, engine, gen, http, logic,
policy, ql, service, sub, txn, ui, value, wal) — empty Cargo.toml +
src/lib.rs to receive code phase-by-phase from `rt`
- restructure docs/examples/ecommerce into multi-app layout: apps/admin
and apps/storefront, with shared/ types/logic/components, per-app
app.wo + wo.toml, and reusable .htmlx components (layout, money,
order-row)
- add reference/rest/{blog,ecommerce}.rest — VS Code/JetBrains HTTP
request files driving the running prototype, including 501/404/405
expectations for stubbed endpoints
- add docs/plan/09-concurrency-scaleout.md and docs/plan/ui/00-overview.md;
refine docs/plan/assembly/02-writeonce-stance.md
- refresh templates (about, article, header/footer, home, layout, styles)
and add static favicon/logo
- add infra/sync.sh and tighten .gitignore for reference/ symlinks
19 lines
1 KiB
Rust
19 lines
1 KiB
Rust
//! `wo-logic` — triggers and stored-function interpreter.
|
|
//!
|
|
//! **Status: placeholder.** Phase 6 (see
|
|
//! [06-lowcode-fullstack.md § `##logic`](
|
|
//! ../../../docs/runtime/database/06-lowcode-fullstack.md)).
|
|
//!
|
|
//! Two sources of runtime code:
|
|
//! * **Type-attached triggers** — `on insert | update | delete [when <pred>]
|
|
//! do <action>` declared inside a `type` body. Fires inside the committing
|
|
//! transaction so timestamp stamps (`paid_at`, `shipped_at`) are atomic
|
|
//! with the state change, never observable half-way.
|
|
//! * **Standalone `##logic`** — cross-entity workflows like the ecommerce
|
|
//! on-order-placed hook that decrements inventory on every line item.
|
|
//! * **`fn name(args) in txn ... { ... }`** — transactional stored
|
|
//! functions (the `checkout` in `docs/examples/ecommerce/logic/`).
|
|
//!
|
|
//! All three compile to the same intermediate form that [`txn`](../txn/index.html)
|
|
//! invokes during commit (for triggers) or directly on the main loop (for
|
|
//! `fn` calls from REST/native wire).
|