guppy::graph::cargo

Struct CargoOptions

source
pub struct CargoOptions<'a> { /* private fields */ }
Expand description

Options for queries which simulate what Cargo does.

This provides control over the resolution algorithm used by guppy’s simulation of Cargo.

Implementations§

source§

impl<'a> CargoOptions<'a>

source

pub fn new() -> Self

Creates a new CargoOptions with this resolver version and default settings.

The default settings are similar to what a plain cargo build does:

  • use version 1 of the Cargo resolver
  • exclude dev-dependencies
  • do not build proc macros specified in the query on the target platform
  • resolve dependencies assuming any possible host or target platform
  • do not omit any packages.
source

pub fn set_resolver(&mut self, resolver: CargoResolverVersion) -> &mut Self

Sets the Cargo feature resolver version.

For more about feature resolution, see the documentation for CargoResolverVersion.

source

pub fn set_include_dev(&mut self, include_dev: bool) -> &mut Self

If set to true, causes dev-dependencies of the initial set to be followed.

This does not affect transitive dependencies – for example, a build or dev-dependency’s further dev-dependencies are never followed.

The default is false, which matches what a plain cargo build does.

source

pub fn set_initials_platform( &mut self, initials_platform: InitialsPlatform, ) -> &mut Self

Configures the way initials are treated on the target and the host.

The default is a “standard” build and this does not usually need to be set, but some advanced use cases may require it. For more about this option, see the documentation for InitialsPlatform.

source

pub fn set_platform( &mut self, platform_spec: impl Into<PlatformSpec>, ) -> &mut Self

Sets both the target and host platforms to the provided spec.

source

pub fn set_target_platform( &mut self, target_platform: impl Into<PlatformSpec>, ) -> &mut Self

Sets the target platform to the provided spec.

source

pub fn set_host_platform( &mut self, host_platform: impl Into<PlatformSpec>, ) -> &mut Self

Sets the host platform to the provided spec.

source

pub fn add_omitted_packages( &mut self, package_ids: impl IntoIterator<Item = &'a PackageId>, ) -> &mut Self

Omits edges into the given packages.

This may be useful in order to figure out what additional dependencies or features a particular set of packages pulls in.

This method is additive.

Trait Implementations§

source§

impl<'a> Clone for CargoOptions<'a>

source§

fn clone(&self) -> CargoOptions<'a>

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<'a> Debug for CargoOptions<'a>

source§

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

Formats the value using the given formatter. Read more
source§

impl Default for CargoOptions<'_>

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for CargoOptions<'a>

§

impl<'a> RefUnwindSafe for CargoOptions<'a>

§

impl<'a> Send for CargoOptions<'a>

§

impl<'a> Sync for CargoOptions<'a>

§

impl<'a> Unpin for CargoOptions<'a>

§

impl<'a> UnwindSafe for CargoOptions<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> ToOwned for T
where T: Clone,

source§

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 T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

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

source§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.