More generic #[derive(PartialEq)]?

struct Container<B>(B);

fn cmp(v1: Container<&[u8]>, v2: Container<Vec<u8>>) -> bool {
    v1 == v2
error[E0308]: mismatched types
 --> src/
5 |     v1 == v2
  |           ^^ expected `Container<&[u8]>`, found `Container<Vec<u8>>`
  = note: expected struct `Container<&[u8]>`
             found struct `Container<Vec<u8>>`


There is impl<'a> PartialEq<Vec<u8>> for &'a [u8] so I think it won't fail.

Also how can I manually impl this if Container is a complex enum like serde_json::Value and some variants contain the generic B?

This is a question which would be better posted on