Introduce Builder and Product types to the Module workflow.

This eliminates API confusion and surface area with respect to what state
the `Backend` needs to be in at different points.

Now, API users will construct a `Builder`, and pass it into the `Module`
which uses it to constrct a `Backend`. The `Backend` instance only lives
inside the `Module`. And when finished, the `Module` can return a
`Product` back to the user providing any outputs it has.
This commit is contained in:
Dan Gohman
2018-04-19 10:54:57 -07:00
parent 5bc0e0e188
commit cb37c25d3a
6 changed files with 161 additions and 77 deletions

View File

@@ -29,5 +29,5 @@ mod backend;
mod container;
mod target;
pub use backend::FaerieBackend;
pub use backend::{FaerieBuilder, FaerieBackend};
pub use container::Format;