static-assertions icon indicating copy to clipboard operation
static-assertions copied to clipboard

assert_impl_all! with serde::Deserialize

Open SOF3 opened this issue 5 years ago • 1 comments

serde::Deserialize takes the lifetime parameter <'de>. How should I check that a class derives serde::Deserialize?

One of the working solutions is assert_impl_all!(MyType : serde::Deserialize<'static>);, using the trick that 'static is available everywhere. However, is this the best practice?

Please consider adding this note to the documentation.

SOF3 avatar Nov 21 '19 14:11 SOF3

If/when https://github.com/nvzqz/static-assertions-rs/pull/28 gets accepted, I believe the following would work:

assert_impl!(for('a) MyType : serde::Deserialize<'a>);

In the meantime, I think using 'static is indeed the best we can do.

Nadrieril avatar Nov 21 '19 15:11 Nadrieril