X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustdoc%2Fhtml%2Frender%2Fmod.rs;h=97ee682c11c4d6a5eb5d6f77a4516a9dcc82313c;hb=acd4dc2d0ca8676fbf105507504e24d44e5dd1f6;hp=8c922240c449438f54d5b346321300c420fab29f;hpb=60dae7aabd5773822aa7a725abe01e43f40b424b;p=rust.git diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index 8c922240c44..97ee682c11c 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -53,7 +53,7 @@ use serde::ser::SerializeSeq; use serde::{Serialize, Serializer}; -use crate::clean::{self, FakeDefId, GetDefId, RenderedLink, SelfTy}; +use crate::clean::{self, GetDefId, ItemId, RenderedLink, SelfTy}; use crate::docfs::PathError; use crate::error::Error; use crate::formats::cache::Cache; @@ -95,53 +95,8 @@ /// A type used for the search index. #[derive(Debug)] crate struct RenderType { - ty: Option, - idx: Option, name: Option, - generics: Option>, -} - -impl Serialize for RenderType { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - if let Some(name) = &self.name { - let mut seq = serializer.serialize_seq(None)?; - if let Some(id) = self.idx { - seq.serialize_element(&id)?; - } else { - seq.serialize_element(&name)?; - } - if let Some(generics) = &self.generics { - seq.serialize_element(&generics)?; - } - seq.end() - } else { - serializer.serialize_none() - } - } -} - -/// A type used for the search index. -#[derive(Debug)] -crate struct Generic { - name: String, - defid: Option, - idx: Option, -} - -impl Serialize for Generic { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - if let Some(id) = self.idx { - serializer.serialize_some(&id) - } else { - serializer.serialize_some(&self.name) - } - } + generics: Option>, } /// Full type of functions/methods in the search index. @@ -195,7 +150,13 @@ fn serialize(&self, serializer: S) -> Result where S: Serializer, { - (&self.ty.name, self.kind).serialize(serializer) + let mut seq = serializer.serialize_seq(None)?; + seq.serialize_element(&self.ty.name)?; + seq.serialize_element(&self.kind)?; + if let Some(generics) = &self.ty.generics { + seq.serialize_element(generics)?; + } + seq.end() } } @@ -774,7 +735,7 @@ fn naive_assoc_href(it: &clean::Item, link: AssocItemLink<'_>, cx: &Context<'_>) AssocItemLink::Anchor(Some(ref id)) => format!("#{}", id), AssocItemLink::Anchor(None) => anchor, AssocItemLink::GotoSource(did, _) => { - href(did.expect_real(), cx).map(|p| format!("{}{}", p.0, anchor)).unwrap_or(anchor) + href(did.expect_def_id(), cx).map(|p| format!("{}{}", p.0, anchor)).unwrap_or(anchor) } } } @@ -906,7 +867,7 @@ fn method( ItemType::TyMethod }; - href(did.expect_real(), cx) + href(did.expect_def_id(), cx) .map(|p| format!("{}#{}.{}", p.0, ty, name)) .unwrap_or_else(|| format!("#{}.{}", ty, name)) } @@ -1026,7 +987,7 @@ fn render_attributes_in_code(w: &mut Buffer, it: &clean::Item) { #[derive(Copy, Clone)] enum AssocItemLink<'a> { Anchor(Option<&'a str>), - GotoSource(FakeDefId, &'a FxHashSet), + GotoSource(ItemId, &'a FxHashSet), } impl<'a> AssocItemLink<'a> { @@ -1716,6 +1677,7 @@ fn print_sidebar(cx: &Context<'_>, it: &clean::Item, buffer: &mut Buffer) { write!( buffer, "
\ +
\

Version {}

\
", Escape(version), @@ -1857,7 +1819,7 @@ fn small_url_encode(s: String) -> String { } fn sidebar_assoc_items(cx: &Context<'_>, out: &mut Buffer, it: &clean::Item) { - let did = it.def_id.expect_real(); + let did = it.def_id.expect_def_id(); if let Some(v) = cx.cache.impls.get(&did) { let mut used_links = FxHashSet::default(); let cache = cx.cache(); @@ -2147,7 +2109,7 @@ fn print_sidebar_section( "", ); - if let Some(implementors) = cx.cache.implementors.get(&it.def_id.expect_real()) { + if let Some(implementors) = cx.cache.implementors.get(&it.def_id.expect_def_id()) { let cache = cx.cache(); let mut res = implementors .iter()