using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Net; namespace ZeroLevel.Services.Serialization { public interface IBinaryWriter : IDisposable { void WriteBoolean(bool val); void WriteChar(char val); void WriteByte(byte val); void WriteBytes(byte[] val); void WriteShort(short number); void WriteUShort(ushort number); void WriteDouble(double val); void WriteFloat(float val); void WriteInt32(Int32 number); void WriteUInt32(UInt32 number); void WriteLong(Int64 number); void WriteULong(UInt64 number); void WriteString(string line); void WriteGuid(Guid guid); void WriteDateTime(DateTime? datetime); void WriteTime(TimeOnly? time); void WriteDate(DateOnly? date); void WriteDecimal(Decimal number); void WriteTimeSpan(TimeSpan period); void WriteIP(IPAddress ip); void WriteIPEndpoint(IPEndPoint endpoint); #region Extensions #region Arrays void WriteArray(T[] array) where T : IBinarySerializable; void WriteArray(string[] array); void WriteArray(IPAddress[] array); void WriteArray(IPEndPoint[] array); void WriteArray(Guid[] array); void WriteArray(DateTime[] array); void WriteArray(UInt64[] array); void WriteArray(UInt32[] array); void WriteArray(char[] array); void WriteArray(short[] array); void WriteArray(ushort[] array); void WriteArray(Int64[] array); void WriteArray(Int32[] array); void WriteArray(float[] array); void WriteArray(Double[] array); void WriteArray(bool[] array); void WriteArray(byte[] array); void WriteArray(byte[][] array); void WriteArray(decimal[] array); void WriteArray(TimeSpan[] array); #endregion #region Collections void WriteCollection(IEnumerable collection) where T : IBinarySerializable; void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); void WriteCollection(IEnumerable collection); #endregion void WriteDictionary(IDictionary collection); void WriteDictionary(ConcurrentDictionary collection); void Write(T item) where T : IBinarySerializable; void WriteCompatible(T item); #endregion Extensions Stream Stream { get; } } }