facet_core/impls/builtin.rs
1use crate::{Facet, Opaque, Shape, VarianceDesc};
2
3// Opaque<T> is a lifetime boundary; require 'static to prevent lifetime laundering
4// through reflection. See issue #1563 for details.
5unsafe impl<'facet, T: 'static> Facet<'facet> for Opaque<T> {
6 const SHAPE: &'static Shape = &const {
7 Shape::builder_for_sized::<Opaque<T>>("Opaque")
8 .variance(VarianceDesc::INVARIANT)
9 .build()
10 };
11}