I'm trying to implement a factory with a struct named Builder. It has a property to count created instances. This counting object may be used in several factories simultaniously. That is the idea. When I compile the code, the compiler gives me the error message:
error: no method named `superman` found for type `game::hero::Builder<&mut game::count::Count>` in the current scope
I'm pretty sure your problem here is that even if Counting is implemented for the type Count, it isn't implemented for &mut Count.
Try making a builder of game::hero::Builder<game::count::Count>. This could either be with your current definition, just with the Count as owned, rather than &mut, or define Builder with count: &mut T rather than count: T.
In any case, if you are going to depend on T: Counting, you are going to have to have T as just Count, not as an &mut Count.