nvzqz/static-assertions

assert_impl_all! with serde::Deserialize

SOF3 opened this issue · 1 comments

SOF3 commented

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.

If/when #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.