| use rustc::hir; |
| use rustc::ty; |
| |
| // Whether an item exists in the type or value namespace. |
| #[derive(Copy, Clone, PartialEq, Eq, Debug)] |
| pub enum Namespace { |
| Type, |
| Value, |
| } |
| |
| impl From<ty::AssocKind> for Namespace { |
| fn from(a_kind: ty::AssocKind) -> Self { |
| match a_kind { |
| ty::AssocKind::OpaqueTy | |
| ty::AssocKind::Type => Namespace::Type, |
| ty::AssocKind::Const | |
| ty::AssocKind::Method => Namespace::Value, |
| } |
| } |
| } |
| |
| impl<'a> From <&'a hir::ImplItemKind> for Namespace { |
| fn from(impl_kind: &'a hir::ImplItemKind) -> Self { |
| match *impl_kind { |
| hir::ImplItemKind::OpaqueTy(..) | |
| hir::ImplItemKind::TyAlias(..) => Namespace::Type, |
| hir::ImplItemKind::Const(..) | |
| hir::ImplItemKind::Method(..) => Namespace::Value, |
| } |
| } |
| } |