Struct cargo_toml::Manifest[][src]

pub struct Manifest<Metadata = Value> {
    pub package: Option<Package<Metadata>>,
    pub workspace: Option<Workspace>,
    pub dependencies: DepsSet,
    pub dev_dependencies: DepsSet,
    pub build_dependencies: DepsSet,
    pub target: TargetDepsSet,
    pub features: FeatureSet,
    pub patch: PatchSet,
    pub lib: Option<Product>,
    pub profile: Profiles,
    pub badges: Badges,
    pub bin: Vec<Product>,
    pub bench: Vec<Product>,
    pub test: Vec<Product>,
    pub example: Vec<Product>,
}

The top-level Cargo.toml structure

The Metadata is a type for [package.metadata] table. You can replace it with your own struct type if you use the metadata and don’t want to use the catch-all Value type.

Fields

package: Option<Package<Metadata>>workspace: Option<Workspace>dependencies: DepsSetdev_dependencies: DepsSetbuild_dependencies: DepsSettarget: TargetDepsSetfeatures: FeatureSetpatch: PatchSetlib: Option<Product>

Note that due to autolibs feature this is not the complete list unless you run complete_from_path

profile: Profilesbadges: Badgesbin: Vec<Product>

Note that due to autobins feature this is not the complete list unless you run complete_from_path

bench: Vec<Product>test: Vec<Product>example: Vec<Product>

Implementations

impl Manifest<Value>[src]

pub fn from_slice(cargo_toml_content: &[u8]) -> Result<Self, Error>[src]

Parse contents of a Cargo.toml file already loaded as a byte slice.

It does not call complete_from_path, so may be missing implicit data.

pub fn from_path(cargo_toml_path: impl AsRef<Path>) -> Result<Self, Error>[src]

Parse contents from a Cargo.toml file on disk.

Calls complete_from_path.

pub fn from_str(cargo_toml_content: &str) -> Result<Self, Error>[src]

Parse contents of a Cargo.toml file loaded as a string

Note: this is not a file name, but file’s content. See from_path.

It does not call complete_from_path, so may be missing implicit data.

impl<Metadata: for<'a> Deserialize<'a>> Manifest<Metadata>[src]

pub fn from_slice_with_metadata(
    cargo_toml_content: &[u8]
) -> Result<Self, Error>
[src]

Parse Cargo.toml, and parse its [package.metadata] into a custom Serde-compatible type.package

It does not call complete_from_path, so may be missing implicit data.

pub fn from_path_with_metadata(
    cargo_toml_path: impl AsRef<Path>
) -> Result<Self, Error>
[src]

Parse contents from Cargo.toml file on disk, with custom Serde-compatible metadata type.

Calls complete_from_path

pub fn complete_from_path(&mut self, path: &Path) -> Result<(), Error>[src]

Cargo.toml doesn’t contain explicit information about [lib] and [[bin]], which are inferred based on files on disk.

This scans the disk to make the data in the manifest as complete as possible.

pub fn complete_from_abstract_filesystem(
    &mut self,
    fs: impl AbstractFilesystem
) -> Result<(), Error>
[src]

Cargo.toml doesn’t contain explicit information about [lib] and [[bin]], which are inferred based on files on disk.

You can provide any implementation of directory scan, which doesn’t have to be reading straight from disk (might scan a tarball or a git repo, for example).

Trait Implementations

impl<Metadata: Clone> Clone for Manifest<Metadata>[src]

impl<Metadata: Debug> Debug for Manifest<Metadata>[src]

impl<'de, Metadata> Deserialize<'de> for Manifest<Metadata> where
    Metadata: Deserialize<'de>, 
[src]

impl<Metadata: PartialEq> PartialEq<Manifest<Metadata>> for Manifest<Metadata>[src]

impl<Metadata> Serialize for Manifest<Metadata> where
    Metadata: Serialize
[src]

impl<Metadata> StructuralPartialEq for Manifest<Metadata>[src]

Auto Trait Implementations

impl<Metadata> RefUnwindSafe for Manifest<Metadata> where
    Metadata: RefUnwindSafe

impl<Metadata> Send for Manifest<Metadata> where
    Metadata: Send

impl<Metadata> Sync for Manifest<Metadata> where
    Metadata: Sync

impl<Metadata> Unpin for Manifest<Metadata> where
    Metadata: Unpin

impl<Metadata> UnwindSafe for Manifest<Metadata> where
    Metadata: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.