cargo::core::manifest

# Struct Manifest

Source

    pub struct Manifest {Show 27 fields
        contents: Rc<String>,
        document: Rc<ImDocument<String>>,
        original_toml: Rc<TomlManifest>,
        normalized_toml: Rc<TomlManifest>,
        summary: Summary,
        targets: Vec<Target>,
        default_kind: Option<CompileKind>,
        forced_kind: Option<CompileKind>,
        links: Option<String>,
        warnings: Warnings,
        exclude: Vec<String>,
        include: Vec<String>,
        metadata: ManifestMetadata,
        custom_metadata: Option<Value>,
        publish: Option<Vec<String>>,
        replace: Vec<(PackageIdSpec, Dependency)>,
        patch: HashMap<Url, Vec<Dependency>>,
        workspace: WorkspaceConfig,
        unstable_features: Features,
        edition: Edition,
        rust_version: Option<RustVersion>,
        im_a_teapot: Option<bool>,
        default_run: Option<String>,
        metabuild: Option<Vec<String>>,
        resolve_behavior: Option<ResolveBehavior>,
        lint_rustflags: Vec<String>,
        embedded: bool,
    }

Expand description

Contains all the information about a package, as loaded from a `Cargo.toml`.

This is deserialized using the `TomlManifest` type.

## Fields§

§`contents: Rc<String>`§`document: Rc<ImDocument<String>>`§`original_toml: Rc<TomlManifest>`§`normalized_toml: Rc<TomlManifest>`§`summary: Summary`§`targets: Vec<Target>`§`default_kind: Option<CompileKind>`§`forced_kind: Option<CompileKind>`§`links: Option<String>`§`warnings: Warnings`§`exclude: Vec<String>`§`include: Vec<String>`§`metadata: ManifestMetadata`§`custom_metadata: Option<Value>`§`publish: Option<Vec<String>>`§`replace: Vec<(PackageIdSpec, Dependency)>`§`patch: HashMap<Url, Vec<Dependency>>`§`workspace: WorkspaceConfig`§`unstable_features: Features`§`edition: Edition`§`rust_version: Option<RustVersion>`§`im_a_teapot: Option<bool>`§`default_run: Option<String>`§`metabuild: Option<Vec<String>>`§`resolve_behavior: Option<ResolveBehavior>`§`lint_rustflags: Vec<String>`§`embedded: bool`

## Implementations§

Source§

### impl Manifest

Source

#### pub fn new( contents: Rc<String>, document: Rc<ImDocument<String>>, original_toml: Rc<TomlManifest>, normalized_toml: Rc<TomlManifest>, summary: Summary, default_kind: Option<CompileKind>, forced_kind: Option<CompileKind>, targets: Vec<Target>, exclude: Vec<String>, include: Vec<String>, links: Option<String>, metadata: ManifestMetadata, custom_metadata: Option<Value>, publish: Option<Vec<String>>, replace: Vec<(PackageIdSpec, Dependency)>, patch: HashMap<Url, Vec<Dependency>>, workspace: WorkspaceConfig, unstable_features: Features, edition: Edition, rust_version: Option<RustVersion>, im_a_teapot: Option<bool>, default_run: Option<String>, metabuild: Option<Vec<String>>, resolve_behavior: Option<ResolveBehavior>, lint_rustflags: Vec<String>, embedded: bool, ) -> Manifest

Source

#### pub fn contents(&self) -> &str

The raw contents of the original TOML

Source

#### pub fn to_normalized_contents(&self) -> CargoResult<String>

See `Manifest::normalized_toml` for what “normalized” means

Source

#### pub fn document(&self) -> &ImDocument<String>

Collection of spans for the original TOML

Source

#### pub fn original_toml(&self) -> &TomlManifest

The `TomlManifest` as parsed from `Manifest::document`

Source

#### pub fn normalized_toml(&self) -> &TomlManifest

The `TomlManifest` with all fields expanded

This is the intersection of what fields need resolving for cargo-publish that also are useful for the operation of cargo, including

- workspace inheritance
- target discovery

Source

#### pub fn summary(&self) -> &Summary

Source

#### pub fn summary_mut(&mut self) -> &mut Summary

Source

#### pub fn dependencies(&self) -> &[Dependency]

Source

#### pub fn default_kind(&self) -> Option<CompileKind>

Source

#### pub fn forced_kind(&self) -> Option<CompileKind>

Source

#### pub fn exclude(&self) -> &[String]

Source

#### pub fn include(&self) -> &[String]

Source

#### pub fn metadata(&self) -> &ManifestMetadata

Source

#### pub fn name(&self) -> InternedString

Source

#### pub fn package_id(&self) -> PackageId

Source

#### pub fn targets(&self) -> &[Target]

Source

#### pub fn targets_mut(&mut self) -> &mut [Target]

Source

#### pub fn version(&self) -> &Version

Source

#### pub fn warnings_mut(&mut self) -> &mut Warnings

Source

#### pub fn warnings(&self) -> &Warnings

Source

#### pub fn profiles(&self) -> Option<&TomlProfiles>

Source

#### pub fn publish(&self) -> &Option<Vec<String>>

Source

#### pub fn replace(&self) -> &[(PackageIdSpec, Dependency)]

Source

#### pub fn patch(&self) -> &HashMap<Url, Vec<Dependency>>

Source

#### pub fn links(&self) -> Option<&str>

Source

#### pub fn is_embedded(&self) -> bool

Source

#### pub fn workspace_config(&self) -> &WorkspaceConfig

Source

#### pub fn unstable_features(&self) -> &Features

Unstable, nightly features that are enabled in this manifest.

Source

#### pub fn resolve_behavior(&self) -> Option<ResolveBehavior>

The style of resolver behavior to use, declared with the `resolver` field.

Returns `None` if it is not specified.

Source

#### pub fn lint_rustflags(&self) -> &[String]

`RUSTFLAGS` from the `[lints]` table

Source

#### pub fn map_source( self, to_replace: SourceId, replace_with: SourceId, ) -> Manifest

Source

#### pub fn feature_gate(&self) -> CargoResult<()>

Source

#### pub fn print_teapot(&self, gctx: &GlobalContext)

Source

#### pub fn edition(&self) -> Edition

Source

#### pub fn rust_version(&self) -> Option<&RustVersion>

Source

#### pub fn custom_metadata(&self) -> Option<&Value>

Source

#### pub fn default_run(&self) -> Option<&str>

Source

#### pub fn metabuild(&self) -> Option<&Vec<String>>

Source

#### pub fn metabuild_path(&self, target_dir: Filesystem) -> PathBuf

## Trait Implementations§

Source§

### impl Clone for Manifest

Source§

#### fn clone(&self) -> Manifest

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 Manifest

Source§

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

Formats the value using the given formatter. Read more

## Auto Trait Implementations§

§

### impl Freeze for Manifest

§

### impl RefUnwindSafe for Manifest

§

### impl !Send for Manifest

§

### impl !Sync for Manifest

§

### impl Unpin for Manifest

§

### impl UnwindSafe for Manifest

## 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 u8)

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

§

### impl<T> Instrument for T

§

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

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

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

### impl<T> Pointable for T

§

#### const ALIGN: usize = _

The alignment of pointer.
§

#### type Init = T

The type for initializers.
§

#### unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

#### unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

#### unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

#### unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

### impl<T> Same for T

Source§

#### type Output = T

Should always be `Self`
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.
§

### impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

#### fn vzip(self) -> V

§

### impl<T> WithSubscriber for T

§

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

#### fn with_current_subscriber(self) -> WithDispatch<Self>

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

## 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: 1552 bytes