Struct forc_pkg::BuildPlan

source ·
pub struct BuildPlan { /* private fields */ }
Expand description

Represents the full build plan for a project.

Implementations§

source§

impl BuildPlan

source

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.

source

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.

source

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.

source

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.

source

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.

source

pub fn graph(&self) -> &Graph

View the build plan’s compilation graph.

source

pub fn manifest_map(&self) -> &ManifestMap

View the build plan’s map of pinned package IDs to their associated manifest.

source

pub fn compilation_order(&self) -> &[NodeIx]

The order in which nodes are compiled, determined via a toposort of the package graph.

source

pub fn find_member_index(&self, member_name: &str) -> Option<NodeIx>

Produce the node index of the member with the given name.

source

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.

source

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§

source§

impl Clone for BuildPlan

source§

fn clone(&self) -> BuildPlan

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BuildPlan

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AnyDebug for Twhere T: Any + Debug,

§

fn as_any_ref(&self) -> &(dyn Any + 'static)

Returns a reference to the underlying type as Any.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<T> StorageAsMut for T

§

fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>where Type: Mappable,

§

fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>where Type: Mappable,

§

impl<T> StorageAsRef for T

§

fn storage<Type>(&self) -> StorageRef<'_, Self, Type>where Type: Mappable,

§

fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>where Type: Mappable,

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more