pub struct BuildPlan { /* private fields */ }
Expand description
Represents the full build plan for a project.
Implementations§
source§impl BuildPlan
impl BuildPlan
sourcepub fn from_build_opts(build_options: &BuildOpts) -> Result<Self>
pub fn from_build_opts(build_options: &BuildOpts) -> Result<Self>
Create a new build plan for the project from the build options provided.
To do so, it tries to read the manifet file at the target path and creates the plan with
BuildPlan::from_lock_and_manifest
.
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 member_pinned_pkgs(&self) -> impl Iterator<Item = Pinned> + '_
pub fn member_pinned_pkgs(&self) -> impl Iterator<Item = Pinned> + '_
Produce an iterator yielding all workspace member pinned pkgs in order of compilation.
In the case that this BuildPlan
was constructed for a single package,
only that package’s pinned pkg 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.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for BuildPlan
impl Send for BuildPlan
impl Sync for BuildPlan
impl Unpin for BuildPlan
impl UnwindSafe for BuildPlan
Blanket Implementations§
§impl<T> AnyDebug for Twhere
T: Any + Debug,
impl<T> AnyDebug for Twhere T: Any + Debug,
§fn as_any_ref(&self) -> &(dyn Any + 'static)
fn as_any_ref(&self) -> &(dyn Any + 'static)
Any
.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.