Example #1
0
        public static void DiscardValue(ReaderState reader, SerializedType?knownType = null)
        {
            var valueType = knownType ?? Reader.ReadSerializedType(reader);

            switch (valueType)
            {
            case SerializedType.CustomObject:
                DiscardValue(reader);     // custom object ID
                while (Reader.ReadEnumerableType(reader) == EnumerableType.HasItem)
                {
                    reader.ReadString();     // key
                    DiscardValue(reader);    // value
                }
                break;

            case SerializedType.Object:
                while (Reader.ReadEnumerableType(reader) == EnumerableType.HasItem)
                {
                    reader.ReadString();     // key
                    DiscardValue(reader);    // value
                }
                break;

            case SerializedType.Dictionary:
                var kvpCount = reader.Read <int>();
                for (var i = 0; i < kvpCount; i++)
                {
                    DiscardValue(reader);     // key
                    DiscardValue(reader);     // value
                }
                break;

            case SerializedType.List:
            {
                var count = reader.Read <int>();
                for (var i = 0; i < count; i++)
                {
                    DiscardValue(reader);
                }
                break;
            }

            case SerializedType.HList:
            {
                var count       = reader.Read <int>();
                var elementType = Reader.ReadSerializedType(reader);
                DiscardValues(reader, count, elementType);
                break;
            }

            case SerializedType.Enumerable:
                while (Reader.ReadEnumerableType(reader) == EnumerableType.HasItem)
                {
                    DiscardValue(reader);
                }
                break;

            case SerializedType.HEnumerable:
            {
                var elementType = Reader.ReadSerializedType(reader);
                DiscardValues(reader, elementType);
                break;
            }

            case SerializedType.String:
                Reader.ReadString(reader);
                break;

            case SerializedType.Byte:
                Reader.ReadByte(reader);
                break;

            case SerializedType.SByte:
                Reader.ReadSByte(reader);
                break;

            case SerializedType.UShort:
                Reader.ReadUShort(reader);
                break;

            case SerializedType.Short:
                Reader.ReadShort(reader);
                break;

            case SerializedType.UInt:
                Reader.ReadUInt(reader);
                break;

            case SerializedType.Int:
                Reader.ReadInt(reader);
                break;

            case SerializedType.ULong:
                Reader.ReadULong(reader);
                break;

            case SerializedType.Long:
                Reader.ReadLong(reader);
                break;

            case SerializedType.Float:
                Reader.ReadFloat(reader);
                break;

            case SerializedType.Double:
                Reader.ReadDouble(reader);
                break;

            case SerializedType.Bool:
                Reader.ReadBool(reader);
                break;

            case SerializedType.Decimal:
                Reader.ReadDecimal(reader);
                break;

            case SerializedType.DateTime:
                Reader.ReadDateTime(reader);
                break;

            case SerializedType.Guid:
                Reader.ReadGuid(reader);
                break;

            case SerializedType.Char:
                Reader.ReadChar(reader);
                break;

            case SerializedType.Null:
                break;

            default:
                throw new NotSupportedException($"SerializedType '{valueType}' is not supported");
            }
        }
Example #2
0
 public static string ReadString(ReaderState reader)
 {
     return(reader.ReadString());
 }