about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlona Enraght-Moony <code@alona.page>2024-05-14 20:50:05 +0000
committerAlona Enraght-Moony <code@alona.page>2024-05-16 12:52:46 +0000
commit504bca9ee651cbc8d64a8e0f3cdfad0315478350 (patch)
treec72ca005b6320f2cb0bb77c8eb87a92a7755c43c
parent0e682e9875458ebf811206a48b688e07d762d9bb (diff)
downloadrust-504bca9ee651cbc8d64a8e0f3cdfad0315478350.tar.gz
rust-504bca9ee651cbc8d64a8e0f3cdfad0315478350.zip
rustdoc-json-types: Document `Id`
-rw-r--r--src/rustdoc-json-types/lib.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rustdoc-json-types/lib.rs b/src/rustdoc-json-types/lib.rs
index 164f88faa31..a9882be930c 100644
--- a/src/rustdoc-json-types/lib.rs
+++ b/src/rustdoc-json-types/lib.rs
@@ -188,7 +188,19 @@ pub enum TypeBindingKind {
     Constraint(Vec<GenericBound>),
 }
 
-#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
+/// An opaque identifier for an item.
+///
+/// It can be used to lookup in [Crate::index] or [Crate::paths] to resolve it
+/// to an [Item].
+///
+/// Id's are only valid within a single JSON blob. They cannot be used to
+/// resolve references between the JSON output's for different crates.
+///
+/// Rustdoc makes no guarantees about the inner value of Id's. Applications
+/// should treat them as opaque keys to lookup items, and avoid attempting
+/// to parse them, or otherwise depend on any implementation details.
+#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
+// FIXME(aDotInTheVoid): Consider making this non-public in rustdoc-types.
 pub struct Id(pub String);
 
 #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]