using System.Collections;

namespace XGame.Framework.Serialization
{
    public interface IReader
    {
        bool ReadBool();

        sbyte ReadSbyte();

        byte ReadByte();

        short ReadShort();

        ushort ReadUShort();

        int ReadInt();

        uint ReadUInt();

        long ReadLong();

        ulong ReadULong();

        float ReadFloat();

        double ReadDouble();

        char ReadChar();

        string ReadString();

        byte[] ReadBytes();

        T ReadSerializable<T>() where T : ISerializable, new();

        T ReadEnumerable<T>() where T : class, IEnumerable;
    }
}
