Skip to content

Commit dd5d61c

Browse files
committed
Expose cargo add internals as utils
Move cargo add utils out for future use by other subcommands (namely cargo remove, per #10520).
1 parent 0825039 commit dd5d61c

File tree

7 files changed

+16
-14
lines changed

7 files changed

+16
-14
lines changed

src/bin/cargo/commands/add.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ use cargo::core::FeatureValue;
66
use cargo::ops::cargo_add::add;
77
use cargo::ops::cargo_add::AddOptions;
88
use cargo::ops::cargo_add::DepOp;
9-
use cargo::ops::cargo_add::DepTable;
109
use cargo::ops::resolve_ws;
1110
use cargo::util::command_prelude::*;
1211
use cargo::util::interning::InternedString;
12+
use cargo::util::toml_mut::manifest::DepTable;
1313
use cargo::CargoResult;
1414

1515
pub fn cli() -> clap::Command<'static> {

src/cargo/ops/cargo_add/crate_spec.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use anyhow::Context as _;
44

55
use super::Dependency;
6-
use super::RegistrySource;
6+
use crate::util::toml_mut::dependency::RegistrySource;
77
use crate::util::validate_package_name;
88
use crate::CargoResult;
99

src/cargo/ops/cargo_add/mod.rs

+8-11
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
//! Core of cargo-add command
22
33
mod crate_spec;
4-
mod dependency;
5-
mod manifest;
64

75
use std::collections::BTreeMap;
86
use std::collections::BTreeSet;
@@ -26,18 +24,17 @@ use crate::core::Registry;
2624
use crate::core::Shell;
2725
use crate::core::Summary;
2826
use crate::core::Workspace;
27+
use crate::util::toml_mut::dependency::Dependency;
28+
use crate::util::toml_mut::dependency::GitSource;
29+
use crate::util::toml_mut::dependency::MaybeWorkspace;
30+
use crate::util::toml_mut::dependency::PathSource;
31+
use crate::util::toml_mut::dependency::Source;
32+
use crate::util::toml_mut::dependency::WorkspaceSource;
33+
use crate::util::toml_mut::manifest::DepTable;
34+
use crate::util::toml_mut::manifest::LocalManifest;
2935
use crate::CargoResult;
3036
use crate::Config;
3137
use crate_spec::CrateSpec;
32-
use dependency::Dependency;
33-
use dependency::GitSource;
34-
use dependency::PathSource;
35-
use dependency::RegistrySource;
36-
use dependency::Source;
37-
use manifest::LocalManifest;
38-
39-
use crate::ops::cargo_add::dependency::{MaybeWorkspace, WorkspaceSource};
40-
pub use manifest::DepTable;
4138

4239
/// Information on what dependencies should be added
4340
#[derive(Clone, Debug)]

src/cargo/util/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ pub mod rustc;
5757
mod semver_ext;
5858
pub mod to_semver;
5959
pub mod toml;
60+
pub mod toml_mut;
6061
mod vcs;
6162
mod workspace;
6263

src/cargo/ops/cargo_add/dependency.rs renamed to src/cargo/util/toml_mut/dependency.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ impl Display for WorkspaceSource {
895895
mod tests {
896896
use std::path::Path;
897897

898-
use crate::ops::cargo_add::manifest::LocalManifest;
898+
use crate::util::toml_mut::manifest::LocalManifest;
899899
use cargo_util::paths;
900900

901901
use super::*;

src/cargo/util/toml_mut/mod.rs

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
//! Utilities for editing Cargo.toml manifests
2+
3+
pub mod dependency;
4+
pub mod manifest;

0 commit comments

Comments
 (0)