API references
One reference per language, each generated from the source the package is built from, published with this site and rebuilt on every push to main.
| Language | Reference | Generated by | From |
|---|---|---|---|
| Rust | rustdoc, with an orientation | cargo doc | every crate's doc comments |
| JavaScript and TypeScript | @openbim/ifc | TypeDoc | the package's generated openbim_ifc_wasm.d.ts |
| Python | openbim_ifc | pdoc | the installed wheel: its docstrings and type hints |
| C and C++ | openbim_ifc.h | cargo run -p xtask -- docs | the committed, cbindgen-generated header |
| C# and .NET | OpenBim.Ifc | docfx | the assembly's XML documentation comments |
The Pages workflow builds the npm package, the wheel and the .NET assembly from the same commit as the site, then runs TypeDoc, pdoc and docfx on them. Every tool is pinned: TypeDoc in the repository's package.json, pdoc in the workflow, docfx as a dotnet local tool in .config/dotnet-tools.json. The gate builds the same references from the package and wheel it tests, and the .NET reference when a .NET SDK is installed, so a declaration or doc comment that breaks them fails before merge. The .NET assembly builds with a missing doc comment as an error, and the reference build fails on a docfx warning or on any type or member shown without a summary. Released packages are also documented where their registries host it: docs.rs for the crates.
For task-sized examples rather than member lists, see the cookbooks for JavaScript, Python, C and .NET.