Broken Equality using Derive Eq in custom types

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.