For reference, deriving equality on enums will compare its variants which will return false when you compare different variants. To fix this, the solution is to write a custom implementation of the PartialEq trait. In my case, like this:
impl PartialEq for ItemId {
fn eq(&self, other: &Self) -> bool {
self.as_ref() == other.as_ref()
}
}
Since the enum implements the AsRef trait to return the wrapped NewType struct, and this in turn implements the AsRef trait, which returns the wrapped Uuid type.