1 //! Writer logic for simple IDs
3 //! `RenderAsRust` impls for identifiers which are either too small or too
4 //! shared to belong anywhere else belong here.
5 use std
::fmt
::{Formatter, Result}
;
7 use chalk_ir
::interner
::Interner
;
10 use super::{render_trait::RenderAsRust, state::InternalWriterState}
;
12 impl<I
: Interner
> RenderAsRust
<I
> for AdtId
<I
> {
13 fn fmt(&self, s
: &InternalWriterState
<'_
, I
>, f
: &'_
mut Formatter
<'_
>) -> Result
{
14 // TODO: use debug methods?
18 s
.alias_for_adt_id_name(self.0, s
.db().adt_name(*self))
23 impl<I
: Interner
> RenderAsRust
<I
> for TraitId
<I
> {
24 fn fmt(&self, s
: &InternalWriterState
<'_
, I
>, f
: &'_
mut Formatter
<'_
>) -> Result
{
25 // TODO: use debug methods?
29 s
.alias_for_id_name(self.0, s
.db().trait_name(*self))
34 impl<I
: Interner
> RenderAsRust
<I
> for AssocTypeId
<I
> {
35 fn fmt(&self, s
: &InternalWriterState
<'_
, I
>, f
: &'_
mut Formatter
<'_
>) -> Result
{
36 // TODO: use debug methods?
40 s
.alias_for_id_name(self.0, s
.db().assoc_type_name(*self))
45 impl<I
: Interner
> RenderAsRust
<I
> for OpaqueTyId
<I
> {
46 fn fmt(&self, s
: &InternalWriterState
<'_
, I
>, f
: &'_
mut Formatter
<'_
>) -> Result
{
47 // TODO: use debug methods?
51 s
.alias_for_id_name(self.0, s
.db().opaque_type_name(*self))