patch: Option<HashMap<String, HashMap<String, TomlDependency>>>,
workspace: Option<TomlWorkspace>,
badges: Option<HashMap<String, HashMap<String, String>>>,
+ #[serde(rename = "cargo-features")]
+ cargo_features: Option<Vec<String>>,
}
#[derive(Deserialize, Serialize, Clone, Debug, Default)]
include: Option<Vec<String>>,
publish: Option<bool>,
workspace: Option<String>,
- #[serde(rename = "cargo-features")]
- cargo_features: Option<Vec<String>>,
#[serde(rename = "im-a-teapot")]
im_a_teapot: Option<bool>,
patch: None,
workspace: None,
badges: self.badges.clone(),
+ cargo_features: self.cargo_features.clone(),
};
fn map_deps(deps: Option<&HashMap<String, TomlDependency>>)
let profiles = build_profiles(&me.profile);
let publish = project.publish.unwrap_or(true);
let empty = Vec::new();
- let cargo_features = project.cargo_features.as_ref().unwrap_or(&empty);
+ let cargo_features = me.cargo_features.as_ref().unwrap_or(&empty);
let features = Features::new(&cargo_features, &mut warnings)?;
let mut manifest = Manifest::new(summary,
targets,
fn unknown_feature() {
let p = project("foo")
.file("Cargo.toml", r#"
+ cargo-features = ["foo"]
+
[package]
name = "a"
version = "0.0.1"
authors = []
- cargo-features = ["foo"]
"#)
.file("src/lib.rs", "");
assert_that(p.cargo_process("build"),
fn stable_feature_warns() {
let p = project("foo")
.file("Cargo.toml", r#"
+ cargo-features = ["test-dummy-stable"]
+
[package]
name = "a"
version = "0.0.1"
authors = []
- cargo-features = ["test-dummy-stable"]
"#)
.file("src/lib.rs", "");
assert_that(p.cargo_process("build"),
fn nightly_feature_requires_nightly() {
let p = project("foo")
.file("Cargo.toml", r#"
+ cargo-features = ["test-dummy-unstable"]
+
[package]
name = "a"
version = "0.0.1"
authors = []
im-a-teapot = true
- cargo-features = ["test-dummy-unstable"]
"#)
.file("src/lib.rs", "");
assert_that(p.cargo_process("build")
"#)
.file("src/lib.rs", "")
.file("a/Cargo.toml", r#"
+ cargo-features = ["test-dummy-unstable"]
+
[package]
name = "a"
version = "0.0.1"
authors = []
im-a-teapot = true
- cargo-features = ["test-dummy-unstable"]
"#)
.file("a/src/lib.rs", "");
assert_that(p.cargo_process("build")
fn cant_publish() {
let p = project("foo")
.file("Cargo.toml", r#"
+ cargo-features = ["test-dummy-unstable"]
+
[package]
name = "a"
version = "0.0.1"
authors = []
im-a-teapot = true
- cargo-features = ["test-dummy-unstable"]
"#)
.file("src/lib.rs", "");
assert_that(p.cargo_process("build")
fn z_flags_rejected() {
let p = project("foo")
.file("Cargo.toml", r#"
+ cargo-features = ["test-dummy-unstable"]
+
[package]
name = "a"
version = "0.0.1"
authors = []
im-a-teapot = true
- cargo-features = ["test-dummy-unstable"]
"#)
.file("src/lib.rs", "");
assert_that(p.cargo_process("build")
fn publish_rejected() {
let p = project("foo")
.file("Cargo.toml", r#"
+ cargo-features = ["test-dummy-unstable"]
+
[package]
name = "a"
version = "0.0.1"
authors = []
- cargo-features = ["test-dummy-unstable"]
"#)
.file("src/lib.rs", "");
assert_that(p.cargo_process("package")