pub struct Plan {
pub jobs: Vec<Job>,
pub link: Option<LinkJob>,
pub archive: Option<ArchiveJob>,
pub notes: Vec<String>,
pub output: Option<String>,
}Expand description
The whole plan for one invocation.
Fields§
§jobs: Vec<Job>One per input, in command line order.
link: Option<LinkJob>The link step, or None when a mode flag stopped short of it.
archive: Option<ArchiveJob>The archive step, which is there only under --emit=archive and is never there beside a
link: one command line produces one of the two.
notes: Vec<String>Things worth saying under -v that are not errors, such as an object file passed on a
command line that is not linking.
output: Option<String>The argument of -o as it was written, if it was given.
Kept alongside the paths it produced because the -M family needs the name rather than
the path: a make rule whose target is the object the build asked for is one the build
can read back, and a rule naming a temporary directory is one nothing will ever match.
Implementations§
Source§impl Plan
impl Plan
Sourcepub fn new(
opts: &Options,
inputs: &[Input],
output: Option<&str>,
) -> Result<Plan, PlanError>
pub fn new( opts: &Options, inputs: &[Input], output: Option<&str>, ) -> Result<Plan, PlanError>
Builds the plan for one invocation.
output is the argument of -o, if it was given.
§Errors
Returns a message when the inputs and the mode flags do not describe a compilation:
an out of scope language, -o naming one file for several outputs, or nothing to do.
Trait Implementations§
impl Eq for Plan
impl StructuralPartialEq for Plan
Auto Trait Implementations§
impl Freeze for Plan
impl RefUnwindSafe for Plan
impl Send for Plan
impl Sync for Plan
impl Unpin for Plan
impl UnsafeUnpin for Plan
impl UnwindSafe for Plan
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.