diff --git a/safe-discriminant/tests/pass/generics_with_lifetimes_enum.rs b/safe-discriminant/tests/pass/generics_with_lifetimes_enum.rs new file mode 100644 index 0000000..e578680 --- /dev/null +++ b/safe-discriminant/tests/pass/generics_with_lifetimes_enum.rs @@ -0,0 +1,21 @@ +use safe_discriminant::Discriminant; + +// TODO +// pub enum Foo<'a, T: 'a> will not work + +#[derive(Discriminant)] +#[repr(i64)] +pub enum Foo<'a, T> +where + T: 'a, +{ + A(T) = 1, + B(&'a str) = -1, +} + +fn main() { + let a = Foo::A(1); + let b: Foo<'_, u8> = Foo::B("hello world"); + assert_eq!(a.discriminant(), 1); + assert_eq!(b.discriminant(), -1); +}