public override bool Equals()

in src/DotPulsar/MessageId.cs [114:134]


    public override bool Equals(object? o)
        => o is MessageId id && Equals(id);

    public bool Equals(MessageId? other)
        => other is not null && LedgerId == other.LedgerId && EntryId == other.EntryId && Partition == other.Partition && BatchIndex == other.BatchIndex && Topic == other.Topic;

    public static bool operator ==(MessageId x, MessageId y)
        => ReferenceEquals(x, y) || (x is not null && x.Equals(y));

    public static bool operator !=(MessageId x, MessageId y)
        => !(x == y);

    public override int GetHashCode()
        => HashCode.Combine(LedgerId, EntryId, Partition, BatchIndex, Topic);

    public override string ToString()
    {
        if (Topic == string.Empty)
            return $"{LedgerId}:{EntryId}:{Partition}:{BatchIndex}";
        return $"{LedgerId}:{EntryId}:{Partition}:{BatchIndex}:{Topic}";
    }