# Struct cargo::ops::common_for_install_and_uninstall::InstallInfo

source ·

    struct InstallInfo {
        version_req: Option<String>,
        bins: BTreeSet<String>,
        features: BTreeSet<String>,
        all_features: bool,
        no_default_features: bool,
        profile: String,
        target: Option<String>,
        rustc: Option<String>,
        other: BTreeMap<String, Value>,
    }

Expand description

Tracking information for the installation of a single package.

This tracks the settings that were used when the package was installed. Future attempts to install the same package will check these settings to determine if it needs to be rebuilt/reinstalled. If nothing has changed, then Cargo will inform the user that it is “up to date”.

This is only used for the v2 format.

## Fields§

§`version_req: Option<String>`

Version requested via `--version`. None if `--version` not specified. Currently not used, possibly may be used in the future.

§`bins: BTreeSet<String>`

Set of binary names installed.

§`features: BTreeSet<String>`

Set of features explicitly enabled.

§`all_features: bool`§`no_default_features: bool`§`profile: String`

Either “debug” or “release”.

§`target: Option<String>`

The installation target. Either the host or the value specified in `--target`. None if unknown (when loading from v1).

§`rustc: Option<String>`

Output of `rustc -V`. None if unknown (when loading from v1). Currently not used, possibly may be used in the future.

§`other: BTreeMap<String, Value>`

Forwards compatibility.

## Implementations§

source§

### impl InstallInfo

source

#### fn from_v1(set: &BTreeSet<String>) -> InstallInfo

source

#### fn is_up_to_date( &self, opts: &CompileOptions, target: &str, exes: &BTreeSet<String> ) -> bool

Determine if this installation is “up to date”, or if it needs to be reinstalled.

This does not do Package/Source/Version checking.

## Trait Implementations§

source§

### impl Debug for InstallInfo

source§

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

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

### impl<'de> Deserialize<'de> for InstallInfo

source§

#### fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

### impl Serialize for InstallInfo

source§

#### fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

## Auto Trait Implementations§

§

### impl RefUnwindSafe for InstallInfo

§

### impl Send for InstallInfo

§

### impl Sync for InstallInfo

§

### impl Unpin for InstallInfo

§

### impl UnwindSafe for InstallInfo

## 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> 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>,

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> Serialize for Twhere T: Serialize + ?Sized,

source§

#### fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>

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

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

### impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,

## Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain `repr(...)` attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 176 bytes