|
2 | 2 | //!
|
3 | 3 | //! These types are the public API exposed through the `--output-format json` flag. The [`Crate`]
|
4 | 4 | //! struct is the root of the JSON blob and all other items are contained within.
|
| 5 | +//! |
| 6 | +//! We expose a `rustc-hash` feature that is disabled by default. This feature switches the |
| 7 | +//! [`std::collections::HashMap`] for [`rustc_hash::FxHashMap`] to improve the performance of said |
| 8 | +//! `HashMap` in specific situations. |
| 9 | +//! |
| 10 | +//! `cargo-semver-checks` for example, saw a [-3% improvement][1] when benchmarking using the |
| 11 | +//! `aws_sdk_ec2` JSON output (~500MB of JSON). As always, we recommend measuring the impact before |
| 12 | +//! turning this feature on, as [`FxHashMap`][2] only concerns itself with hash speed, and may |
| 13 | +//! increase the number of collisions. |
| 14 | +//! |
| 15 | +//! [1]: https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/rustc-hash.20and.20performance.20of.20rustdoc-types/near/474855731 |
| 16 | +//! [2]: https://crates.io/crates/rustc-hash |
5 | 17 |
|
6 | 18 | #[cfg(not(feature = "rustc-hash"))]
|
7 | 19 | use std::collections::HashMap;
|
@@ -304,10 +316,10 @@ pub enum AssocItemConstraintKind {
|
304 | 316 | // FIXME(aDotInTheVoid): Consider making this non-public in rustdoc-types.
|
305 | 317 | pub struct Id(pub u32);
|
306 | 318 |
|
307 |
| -/// The fundamental kind of an item. Unlike [`ItemEnum`], this does not carry any aditional info. |
| 319 | +/// The fundamental kind of an item. Unlike [`ItemEnum`], this does not carry any additional info. |
308 | 320 | ///
|
309 | 321 | /// Part of [`ItemSummary`].
|
310 |
| -#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] |
| 322 | +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] |
311 | 323 | #[serde(rename_all = "snake_case")]
|
312 | 324 | pub enum ItemKind {
|
313 | 325 | /// A module declaration, e.g. `mod foo;` or `mod foo {}`
|
@@ -697,7 +709,7 @@ pub enum Abi {
|
697 | 709 | Aapcs { unwind: bool },
|
698 | 710 | /// Can be specified as `extern "win64"`.
|
699 | 711 | Win64 { unwind: bool },
|
700 |
| - /// Can be specifed as `extern "sysv64"`. |
| 712 | + /// Can be specified as `extern "sysv64"`. |
701 | 713 | SysV64 { unwind: bool },
|
702 | 714 | /// Can be specified as `extern "system"`.
|
703 | 715 | System { unwind: bool },
|
@@ -891,7 +903,7 @@ pub enum GenericBound {
|
891 | 903 | }
|
892 | 904 |
|
893 | 905 | /// A set of modifiers applied to a trait.
|
894 |
| -#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] |
| 906 | +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] |
895 | 907 | #[serde(rename_all = "snake_case")]
|
896 | 908 | pub enum TraitBoundModifier {
|
897 | 909 | /// Marks the absence of a modifier.
|
@@ -995,7 +1007,7 @@ pub enum Type {
|
995 | 1007 | QualifiedPath {
|
996 | 1008 | /// The name of the associated type in the parent type.
|
997 | 1009 | ///
|
998 |
| - /// ```ignore (incomplete expresssion) |
| 1010 | + /// ```ignore (incomplete expression) |
999 | 1011 | /// <core::array::IntoIter<u32, 42> as Iterator>::Item
|
1000 | 1012 | /// // ^^^^
|
1001 | 1013 | /// ```
|
@@ -1082,7 +1094,7 @@ pub struct FunctionSignature {
|
1082 | 1094 | #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
1083 | 1095 | pub struct Trait {
|
1084 | 1096 | /// Whether the trait is marked `auto` and is thus implemented automatically
|
1085 |
| - /// for all aplicable types. |
| 1097 | + /// for all applicable types. |
1086 | 1098 | pub is_auto: bool,
|
1087 | 1099 | /// Whether the trait is marked as `unsafe`.
|
1088 | 1100 | pub is_unsafe: bool,
|
@@ -1192,7 +1204,7 @@ pub struct ProcMacro {
|
1192 | 1204 | }
|
1193 | 1205 |
|
1194 | 1206 | /// The way a [`ProcMacro`] is declared to be used.
|
1195 |
| -#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] |
| 1207 | +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] |
1196 | 1208 | #[serde(rename_all = "snake_case")]
|
1197 | 1209 | pub enum MacroKind {
|
1198 | 1210 | /// A bang macro `foo!()`.
|
|
0 commit comments