error: implementation of `zc::private::Construct` is not general enough --> $DIR/steal_owned_data.rs:17:13 | 17 | let _ = Zc::new(owner, steal_owned_data); | ^^^^^^^ doesn't satisfy where-clause | ::: $WORKSPACE/src/private.rs | | / pub unsafe trait Construct<'o, O>: Sized 13 | | where 14 | | O: ?Sized, 15 | | { ... | 18 | | unsafe fn construct(self, owned: &'o O) -> Self::Dependant; 19 | | } | |_- trait `zc::private::Construct` defined here | ::: $WORKSPACE/src/lib.rs | | / pub fn new(owner: O, constructor: C) -> Self 74 | | where 75 | | C: for<'o> Construct<'o, ::Target, Dependant = D>, 76 | | { ... | 81 | | Self { storage, value } 82 | | } | |_____- due to a where-clause on `Zc::::new`... | = note: ...`fn(&'static [u8]) -> MyStruct<'static> {steal_owned_data}` must implement `zc::private::Construct<'0, [u8]>`, for any lifetime `'0`... = note: ...but `fn(&'static [u8]) -> MyStruct<'static> {steal_owned_data}` actually implements `zc::private::Construct<'1, [u8]>`, for some specific lifetime `'1`