Render one Object or paired Interface entity without path/context, lookups or wire-schema changes. Preserve declarations, summaries, optional/unit and empty distinctions; validate protocol semantics and bounded input before rendering. Add five spec/nested goldens and 13 external API tests plus a standalone doctest. Validation: cargo fmt --all -- --check; cargo check --workspace --all-targets; cargo test --workspace --all-targets; cargo test --workspace --doc; nix develop -c bash (cargo clippy --workspace --all-targets -- -D warnings, RUSTDOCFLAGS='-D warnings' cargo doc --workspace --no-deps, cargo run --package wip-public-api-example); git diff --check. All passed. Default shell lacks clippy; declared Nix dev shell supplied it.
26 lines
376 B
Plaintext
26 lines
376 B
Plaintext
interface "/::example" {
|
|
/// "type summary"
|
|
type Z = {
|
|
/// "field summary"
|
|
z?: unit,
|
|
a: [union {
|
|
/// "case summary"
|
|
z,
|
|
/// ""
|
|
a(unit),
|
|
nested(enum {
|
|
/// "enum summary"
|
|
z,
|
|
a,
|
|
}),
|
|
}],
|
|
};
|
|
operation z(
|
|
z: unit,
|
|
a?: unit,
|
|
) -> unit;
|
|
operation a()
|
|
/// "no params result"
|
|
-> unit;
|
|
}
|