Move operators into the struct
Implement hash and eq for both node and edge