# Contagious Traits

**URL:** <https://internals.rust-lang.org/t/contagious-traits/23717>\
**Category:** language design\
**Created:** [November 15, 2025, 4:42pm UTC](https://internals.rust-lang.org/t/contagious-traits/23717 "2025-11-15T16:42:31Z")\
**Posts on this page:** 1\
**Showing post:** 10

<div class="post-metadata">

**Author:** ![mhaeuser](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/mhaeuser/32/13785_2.png) [@mhaeuser](https://internals.rust-lang.org/u/mhaeuser)\
**Post date:** [November 17, 2025, 7:54am UTC](https://internals.rust-lang.org/t/contagious-traits/23717/10 "2025-11-17T07:54:29Z")

</div>

@aszs Thanks for the reference! This makes a lot of sense. Luckily, both traits that are currently interesting to me (`Secret` and [`ValueType`](https://internals.rust-lang.org/t/marker-trait-for-value-types/23718/4)) do stop at indirection.

@Vorpal Despite the fact `Secret` stops at indirection, I started trying to make the trait optional (and, at the same time, removing my keyword that defines it in favour of explicit implementations) and while not finished, it looks very much doable. So regardless of the performance cost, I think this is a fair solution.

Anyway, I hope the idea of the `Sectet` trait is somewhat clear now. Any comments on whether this concept should be generalized?

---

_[View the full topic](https://internals.rust-lang.org/t/contagious-traits/23717)._
