Struct cargo::util::rustc::Rustc

source ·
pub struct Rustc {
    pub path: PathBuf,
    pub wrapper: Option<PathBuf>,
    pub workspace_wrapper: Option<PathBuf>,
    pub verbose_version: String,
    pub version: Version,
    pub host: InternedString,
    /* private fields */
}
Expand description

Information on the rustc executable

Fields§

§path: PathBuf

The location of the exe

§wrapper: Option<PathBuf>

An optional program that will be passed the path of the rust exe as its first argument, and rustc args following this.

§workspace_wrapper: Option<PathBuf>

An optional wrapper to be used in addition to rustc.wrapper for workspace crates

§verbose_version: String

Verbose version information (the output of rustc -vV)

§version: Version

The rustc version (1.23.4-beta.2), this comes from verbose_version.

§host: InternedString

The host triple (arch-platform-OS), this comes from verbose_version.

Implementations§

source§

impl Rustc

source

pub fn new( path: PathBuf, wrapper: Option<PathBuf>, workspace_wrapper: Option<PathBuf>, rustup_rustc: &Path, cache_location: Option<PathBuf>, config: &Config ) -> CargoResult<Rustc>

Runs the compiler at path to learn various pieces of information about it, with an optional wrapper.

If successful this function returns a description of the compiler along with a list of its capabilities.

source

pub fn process(&self) -> ProcessBuilder

Gets a process builder set up to use the found rustc version, with a wrapper if Some.

source

pub fn workspace_process(&self) -> ProcessBuilder

Gets a process builder set up to use the found rustc version, with a wrapper if Some.

source

pub fn process_no_wrapper(&self) -> ProcessBuilder

source

pub fn cached_output( &self, cmd: &ProcessBuilder, extra_fingerprint: u64 ) -> CargoResult<(String, String)>

Gets the output for the given command.

This will return the cached value if available, otherwise it will run the command and cache the output.

extra_fingerprint is extra data to include in the cache fingerprint. Use this if there is other information about the environment that may affect the output that is not part of cmd.

Returns a tuple of strings (stdout, stderr).

Trait Implementations§

source§

impl Debug for Rustc

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Rustc

§

impl Send for Rustc

§

impl Sync for Rustc

§

impl Unpin for Rustc

§

impl UnwindSafe for Rustc

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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> Same<T> for T

§

type Output = T

Should always be Self
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.
§

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

§

fn vzip(self) -> V