Skip to content

Commit 39f1a21

Browse files
committed
perf(toml): Avoid looking up readme on published packages
Not much of a performance gain; this is mostly done to be consistent with the target work.
1 parent 0cf29c5 commit 39f1a21

File tree

9 files changed

+41
-10
lines changed

9 files changed

+41
-10
lines changed

crates/cargo-util-schemas/src/manifest/mod.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -243,15 +243,12 @@ impl TomlPackage {
243243
}
244244

245245
pub fn resolved_readme(&self) -> Result<Option<&String>, UnresolvedError> {
246-
self.readme
247-
.as_ref()
248-
.map(|v| {
249-
v.resolved().and_then(|sb| match sb {
250-
StringOrBool::Bool(_) => Err(UnresolvedError),
251-
StringOrBool::String(value) => Ok(value),
252-
})
253-
})
254-
.transpose()
246+
let readme = self.readme.as_ref().ok_or(UnresolvedError)?;
247+
readme.resolved().and_then(|sb| match sb {
248+
StringOrBool::Bool(false) => Ok(None),
249+
StringOrBool::Bool(true) => Err(UnresolvedError),
250+
StringOrBool::String(value) => Ok(Some(value)),
251+
})
255252
}
256253

257254
pub fn resolved_keywords(&self) -> Result<Option<&Vec<String>>, UnresolvedError> {

src/cargo/util/toml/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,10 @@ fn resolve_package_toml<'a>(
553553
.transpose()?
554554
.as_ref(),
555555
)
556-
.map(|s| manifest::InheritableField::Value(StringOrBool::String(s))),
556+
.map(|s| manifest::InheritableField::Value(StringOrBool::String(s)))
557+
.or(Some(manifest::InheritableField::Value(StringOrBool::Bool(
558+
false,
559+
)))),
557560
keywords: original_package
558561
.keywords
559562
.clone()

tests/testsuite/artifact_dep.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2217,6 +2217,7 @@ authors = []
22172217
description = "foo"
22182218
homepage = "foo"
22192219
documentation = "foo"
2220+
readme = false
22202221
license = "MIT"
22212222
repository = "foo"
22222223
resolver = "2"

tests/testsuite/features2.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1705,6 +1705,7 @@ version = "0.1.0"
17051705
authors = ["Zzz"]
17061706
description = "foo"
17071707
homepage = "https://example.com/"
1708+
readme = false
17081709
license = "MIT"
17091710
resolver = "2"
17101711
"#,

tests/testsuite/features_namespaced.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -987,6 +987,7 @@ name = "foo"
987987
version = "0.1.0"
988988
description = "foo"
989989
homepage = "https://example.com/"
990+
readme = false
990991
license = "MIT"
991992
992993
[dependencies.opt-dep1]
@@ -1105,6 +1106,7 @@ name = "foo"
11051106
version = "0.1.0"
11061107
description = "foo"
11071108
homepage = "https://example.com/"
1109+
readme = false
11081110
license = "MIT"
11091111
11101112
[dependencies.bar]

tests/testsuite/inheritable_workspace_fields.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ publish = true
227227
description = "This is a crate"
228228
homepage = "https://www.rust-lang.org"
229229
documentation = "https://www.rust-lang.org/learn"
230+
readme = false
230231
keywords = ["cli"]
231232
categories = ["development-tools"]
232233
license = "MIT"
@@ -383,6 +384,7 @@ edition = "2015"
383384
name = "bar"
384385
version = "0.2.0"
385386
authors = []
387+
readme = false
386388
387389
[dependencies.dep]
388390
version = "0.1"
@@ -514,6 +516,7 @@ edition = "2015"
514516
name = "bar"
515517
version = "0.2.0"
516518
authors = []
519+
readme = false
517520
518521
[dependencies.dep]
519522
version = "0.1.2"
@@ -927,6 +930,7 @@ edition = "2015"
927930
name = "bar"
928931
version = "0.2.0"
929932
authors = []
933+
readme = false
930934
931935
[dependencies.dep]
932936
version = "0.1"

tests/testsuite/package.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1219,6 +1219,7 @@ version = "0.0.1"
12191219
authors = []
12201220
exclude = ["*.txt"]
12211221
description = "foo"
1222+
readme = false
12221223
license = "MIT"
12231224
12241225
[package.metadata]
@@ -1293,6 +1294,7 @@ edition = "2015"
12931294
name = "bar"
12941295
version = "0.1.0"
12951296
authors = []
1297+
readme = false
12961298
"#,
12971299
cargo::core::manifest::MANIFEST_PREAMBLE
12981300
);
@@ -1360,6 +1362,7 @@ fn package_public_dep() {
13601362
edition = "2015"
13611363
name = "foo"
13621364
version = "0.0.1"
1365+
readme = false
13631366
13641367
[dependencies.bar]
13651368
version = "1.0.0"
@@ -1378,6 +1381,7 @@ version = "1.0.0"
13781381
edition = "2015"
13791382
name = "foo"
13801383
version = "0.0.1"
1384+
readme = false
13811385
13821386
[dependencies.bar]
13831387
version = "1.0.0"
@@ -2855,6 +2859,7 @@ fn workspace_overrides_resolver() {
28552859
edition = "2021"
28562860
name = "bar"
28572861
version = "0.1.0"
2862+
readme = false
28582863
resolver = "1"
28592864
"#,
28602865
cargo::core::manifest::MANIFEST_PREAMBLE
@@ -2874,6 +2879,7 @@ resolver = "1"
28742879
edition = "2015"
28752880
name = "baz"
28762881
version = "0.1.0"
2882+
readme = false
28772883
"#,
28782884
cargo::core::manifest::MANIFEST_PREAMBLE
28792885
);
@@ -2938,6 +2944,7 @@ authors = []
29382944
exclude = ["*.txt"]
29392945
description = "foo"
29402946
homepage = "https://example.com/"
2947+
readme = false
29412948
license = "MIT"
29422949
"#,
29432950
cargo::core::manifest::MANIFEST_PREAMBLE
@@ -3032,6 +3039,7 @@ version = "0.0.1"
30323039
authors = []
30333040
description = "foo"
30343041
documentation = "https://example.com/"
3042+
readme = false
30353043
license = "MIT"
30363044
"#,
30373045
cargo::core::manifest::MANIFEST_PREAMBLE
@@ -3139,6 +3147,7 @@ version = "0.0.1"
31393147
authors = []
31403148
description = "foo"
31413149
homepage = "https://example.com/"
3150+
readme = false
31423151
license = "MIT"
31433152
"#,
31443153
cargo::core::manifest::MANIFEST_PREAMBLE
@@ -3319,6 +3328,7 @@ version = "0.0.1"
33193328
authors = []
33203329
exclude = ["*.txt"]
33213330
description = "foo"
3331+
readme = false
33223332
license = "MIT"
33233333
33243334
[[test]]
@@ -3819,6 +3829,7 @@ include = [
38193829
]
38203830
description = "foo"
38213831
documentation = "docs.rs/foo"
3832+
readme = false
38223833
license = "MIT"
38233834
"#,
38243835
)],
@@ -3885,6 +3896,7 @@ authors = []
38853896
include = ["src/lib.rs"]
38863897
description = "foo"
38873898
documentation = "docs.rs/foo"
3899+
readme = false
38883900
license = "MIT"
38893901
"#,
38903902
)],
@@ -3956,6 +3968,7 @@ include = [
39563968
]
39573969
description = "foo"
39583970
documentation = "docs.rs/foo"
3971+
readme = false
39593972
license = "MIT"
39603973
"#,
39613974
)],
@@ -4070,6 +4083,7 @@ include = [
40704083
]
40714084
description = "foo"
40724085
documentation = "docs.rs/foo"
4086+
readme = false
40734087
license = "MIT"
40744088
"#,
40754089
)],
@@ -4136,6 +4150,7 @@ authors = []
41364150
include = ["src/main.rs"]
41374151
description = "foo"
41384152
documentation = "docs.rs/foo"
4153+
readme = false
41394154
license = "MIT"
41404155
"#,
41414156
)],
@@ -4214,6 +4229,7 @@ include = [
42144229
]
42154230
description = "foo"
42164231
documentation = "docs.rs/foo"
4232+
readme = false
42174233
license = "MIT"
42184234
42194235
[lib]
@@ -4342,6 +4358,7 @@ include = [
43424358
]
43434359
description = "foo"
43444360
documentation = "docs.rs/foo"
4361+
readme = false
43454362
license = "MIT"
43464363
"#,
43474364
)],
@@ -4411,6 +4428,7 @@ authors = []
44114428
include = ["src/lib.rs"]
44124429
description = "foo"
44134430
documentation = "docs.rs/foo"
4431+
readme = false
44144432
license = "MIT"
44154433
"#,
44164434
)],
@@ -4507,6 +4525,7 @@ include = [
45074525
]
45084526
description = "foo"
45094527
documentation = "docs.rs/foo"
4528+
readme = false
45104529
license = "MIT"
45114530
45124531
[[bin]]

tests/testsuite/publish.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,6 +1561,7 @@ You may press ctrl-c [..]
15611561
version = \"0.1.0\"\n\
15621562
authors = []\n\
15631563
description = \"foo\"\n\
1564+
readme = false\n\
15641565
license = \"MIT\"\n\
15651566
\n\
15661567
[dependencies.dep1]\n\
@@ -1675,6 +1676,7 @@ authors = []
16751676
description = "foo"
16761677
homepage = "foo"
16771678
documentation = "foo"
1679+
readme = false
16781680
license = "MIT"
16791681
repository = "foo"
16801682
@@ -1934,6 +1936,7 @@ authors = []
19341936
description = "foo"
19351937
homepage = "foo"
19361938
documentation = "foo"
1939+
readme = false
19371940
license = "MIT"
19381941
repository = "foo"
19391942

tests/testsuite/weak_dep_features.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,7 @@ name = "foo"
632632
version = "0.1.0"
633633
description = "foo"
634634
homepage = "https://example.com/"
635+
readme = false
635636
license = "MIT"
636637
637638
[dependencies.bar]

0 commit comments

Comments
 (0)