pub struct BuildPlan { /* private fields */ }
Expand description
Represents the full build plan for a project.
Implementations
sourceimpl BuildPlan
impl BuildPlan
sourcepub fn from_manifests(
manifests: &MemberManifestFiles,
offline: bool
) -> Result<Self>
pub fn from_manifests(
manifests: &MemberManifestFiles,
offline: bool
) -> Result<Self>
Create a new build plan for the project by fetching and pinning all dependenies.
To account for an existing lock file, use from_lock_and_manifest
instead.
sourcepub fn from_lock_and_manifests(
lock_path: &Path,
manifests: &MemberManifestFiles,
locked: bool,
offline: bool
) -> Result<Self>
pub fn from_lock_and_manifests(
lock_path: &Path,
manifests: &MemberManifestFiles,
locked: bool,
offline: bool
) -> Result<Self>
Create a new build plan taking into account the state of both the PackageManifest and the existing lock file if there is one.
This will first attempt to load a build plan from the lock file and validate the resulting graph using the current state of the PackageManifest.
This includes checking if the [dependencies] or [patch] tables have changed and checking the validity of the local path dependencies. If any changes are detected, the graph is updated and any new packages that require fetching are fetched.
The resulting build plan should always be in a valid state that is ready for building or checking.
sourcepub fn member_nodes(&self) -> impl Iterator<Item = NodeIx> + '_
pub fn member_nodes(&self) -> impl Iterator<Item = NodeIx> + '_
Produce an iterator yielding all workspace member nodes in order of compilation.
In the case that this BuildPlan
was constructed for a single package,
only that package’s node will be yielded.
sourcepub fn manifest_map(&self) -> &ManifestMap
pub fn manifest_map(&self) -> &ManifestMap
View the build plan’s map of pinned package IDs to their associated manifest.
sourcepub fn compilation_order(&self) -> &[NodeIx]
pub fn compilation_order(&self) -> &[NodeIx]
The order in which nodes are compiled, determined via a toposort of the package graph.
sourcepub fn find_member_index(&self, member_name: &str) -> Option<NodeIx>
pub fn find_member_index(&self, member_name: &str) -> Option<NodeIx>
Produce the node index of the member with the given name.
sourcepub fn node_deps(&self, n: NodeIx) -> impl '_ + Iterator<Item = NodeIx>
pub fn node_deps(&self, n: NodeIx) -> impl '_ + Iterator<Item = NodeIx>
Produce an iterator yielding indices for the given node and its dependencies in BFS order.
sourcepub fn build_profiles(
&self
) -> impl '_ + Iterator<Item = (String, BuildProfile)>
pub fn build_profiles(
&self
) -> impl '_ + Iterator<Item = (String, BuildProfile)>
Produce an iterator yielding build profiles from the member nodes of this BuildPlan.