5 use rustc_hir::def_id::DefId;
7 crate use renderer::{run_format, FormatRenderer};
10 use crate::clean::types::GetDefId;
11 use crate::formats::cache::Cache;
13 /// Specifies whether rendering directly implemented trait items or ones from a certain Deref
15 crate enum AssocItemRender<'a> {
17 DerefFor { trait_: &'a clean::Type, type_: &'a clean::Type, deref_mut_: bool },
20 /// For different handling of associated items from the Deref target of a type rather than the type
22 #[derive(Copy, Clone, PartialEq)]
23 crate enum RenderMode {
25 ForDeref { mut_: bool },
28 /// Metadata about implementations for a type or trait.
29 #[derive(Clone, Debug)]
31 crate impl_item: clean::Item,
35 crate fn inner_impl(&self) -> &clean::Impl {
36 match *self.impl_item.kind {
37 clean::ImplItem(ref impl_) => impl_,
38 _ => panic!("non-impl item found in impl"),
42 crate fn trait_did(&self) -> Option<DefId> {
43 self.inner_impl().trait_.def_id()
46 crate fn trait_did_full(&self, cache: &Cache) -> Option<DefId> {
47 self.inner_impl().trait_.def_id_full(cache)