in oplog/txn_optime.go [46:63]
func TxnOpTimeEquals(lhs TxnOpTime, rhs TxnOpTime) bool {
if (lhs.Term == nil && rhs.Term != nil) || (lhs.Term != nil && rhs.Term == nil) ||
(lhs.Hash == nil && rhs.Hash != nil) || (lhs.Hash != nil && rhs.Hash == nil) {
return false
}
termsBothNilOrEqual := true
if lhs.Term != nil && rhs.Term != nil {
termsBothNilOrEqual = *lhs.Term == *rhs.Term
}
hashesBothNilOrEqual := true
if lhs.Hash != nil && rhs.Hash != nil {
hashesBothNilOrEqual = *lhs.Hash == *rhs.Hash
}
return lhs.Timestamp.Equal(rhs.Timestamp) && termsBothNilOrEqual && hashesBothNilOrEqual
}