using System.Collections.Generic; namespace SharpChat { public interface IServerPacket { long SequenceId { get; } IEnumerable Pack(); } public abstract class ServerPacket : IServerPacket { public long SequenceId { get; } public ServerPacket(long sequenceId = 0) { // Allow sequence id to be manually set for potential message repeats SequenceId = sequenceId > 0 ? sequenceId : SharpId.Next(); } public abstract IEnumerable Pack(); } }