Skip to content

Commit

Permalink
Add function for parsing already-read manifest
Browse files Browse the repository at this point in the history
This makes the function formerly known as `do_read_manifest` public
under the name `read_manifest_from_str` so that Cargo-as-a-library users
can parse a manifest without re-reading a `Cargo.toml` file they have
already read from disk themselves.
  • Loading branch information
Jon Gjengset committed Dec 16, 2021
1 parent bfb7f2e commit 7e160e5
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/cargo/util/toml/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,20 @@ pub fn read_manifest(
);
let contents = paths::read(path).map_err(|err| ManifestError::new(err, path.into()))?;

do_read_manifest(&contents, path, source_id, config)
read_manifest_from_str(&contents, path, source_id, config)
.with_context(|| format!("failed to parse manifest at `{}`", path.display()))
.map_err(|err| ManifestError::new(err, path.into()))
}

fn do_read_manifest(
/// Parse an already-loaded `Cargo.toml` as a Cargo manifest.
///
/// This could result in a real or virtual manifest being returned.
///
/// A list of nested paths is also returned, one for each path dependency
/// within the manifest. For virtual manifests, these paths can only
/// come from patched or replaced dependencies. These paths are not
/// canonicalized.
pub fn read_manifest_from_str(
contents: &str,
manifest_file: &Path,
source_id: SourceId,
Expand Down

0 comments on commit 7e160e5

Please sign in to comment.