Struct fac::build::Build [] [src]

pub struct Build { /* fields omitted */ }

A struct that holds all the information needed to build. You can think of this as behaving like a set of global variables, but we can drop the whole thing.

Build is implmented using a type witness ID, which makes it impossible to create RuleRefs and FileRefs that are out of bounds. I really should put some of these things in a "private" module so that I can provide stronger guarantees of correctness in the main build module.

Methods

impl Build
[src]

Run the actual build!

Look up a File corresponding to a path, or if it doesn't exist, allocate space for a new File.

Allocate space for a new Rule.

Read a fac file

Write a fac file

Write factum files

Write a fac.tum file

Output a makefile to do the build

Output a script to do the build

Output a .ninja file to do the build

Output a tupfile to do the build

Add a new File as an input to this rule.

Add a new File as an output of this rule.

Adjust the status of this rule, making sure to keep our sets up to date.

Is this file built yet?

For debugging show all rules and their current status.

Actually run a command.

Handle a rule finishing.

Formats the path nicely as a relative path if possible

Formats the path nicely as a relative path if possible

Formats the rule nicely if possible

pretty_reason is a way of describing a rule in terms of why it needs to be built. If the rule is always built by default, it gives the same output that pretty_rule does. However, if it is a non-default rule, it selects an output which is actually needed to describe why it needs to be built.

pretty_rule_output gives a filepath that would be built by the rule.

Look up the rule

Look up the rule

This is a path in the git repository that we should ignore

This path is inherently boring

Trait Implementations

impl Debug for Build
[src]

Formats the value using the given formatter.

impl Index<FileRef> for Build
[src]

The returned type after indexing

The method for the indexing (container[index]) operation

impl IndexMut<FileRef> for Build
[src]

The method for the mutable indexing (container[index]) operation