pub struct Project {
pub program: Program,
pub solution: Solution,
pub interface: Interface,
pub unimplemented: Vec<String>,
}Expand description
A checked, linked project, before it is sliced.
Separate from compile_project because publishing an interface and typechecking a library are
things a module can do without being an application. Only slicing needs a merge point, a durable
fold and a page — and a policy module that has none of those is not broken, it is a policy
module.
Fields§
§program: Program§solution: SolutionThe root module’s placement, for beck explain place.
interface: InterfaceThe root module’s published contract.
unimplemented: Vec<String>Modules reached through an import that have a .becki and no .beck.
Checking against one is the whole of §3.6 and is not an error — the contract is enough to
compile against. It is never enough to run, because there are no bodies to link, so it is
recorded here rather than refused, and require_implementations is the question a caller
that means to execute the program asks.