Skip to main content

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}