When I try to compile this code:
impl<S, V> Storage for Database<S>
where
S: StoredElement,
V: VisibleElement,
The compiler complains
error[E0207]: the type parameter `V` is not constrained by the impl trait, self type, or predicates
--> src/main.rs:77:9
|
77 | impl<S, V> Storage for Database<S>
| ^ unconstrained type parameter
I assumed V: VisibleElement is a predicate, but apparently the compiler disagrees.
So, in Rust, what exactly is a predicate?