Exemplo n.º 1
0
            public object UnpackValue()
            {
                var type = _unpacker.PeekNextType();

                switch (type)
                {
                case PackStream.PackType.Bytes:
                    break;

                case PackStream.PackType.Null:
                    return(_unpacker.UnpackNull());

                case PackStream.PackType.Boolean:
                    return(_unpacker.UnpackBoolean());

                case PackStream.PackType.Integer:
                    return(_unpacker.UnpackLong());

                case PackStream.PackType.Float:
                    return(_unpacker.UnpackDouble());

                case PackStream.PackType.String:
                    return(_unpacker.UnpackString());

                case PackStream.PackType.Map:
                    return(UnpackMap());

                case PackStream.PackType.List:
                    return(UnpackList());

                case PackStream.PackType.Struct:
                    long size = _unpacker.UnpackStructHeader();
                    switch (_unpacker.UnpackStructSignature())
                    {
                    case NODE:
                        Throw.ArgumentException.IfNotEqual(NodeFields, size, nameof(NodeFields), nameof(size));
                        return(UnpackNode());

                    case RELATIONSHIP:
                        Throw.ArgumentException.IfNotEqual(RelationshipFields, size, nameof(RelationshipFields), nameof(size));
                        return(UnpackRelationship());

                    case PATH:
                        Throw.ArgumentException.IfNotEqual(PathFields, size, nameof(PathFields), nameof(size));
                        return(UnpackPath());
                    }
                    break;
                }
                throw new ArgumentOutOfRangeException(nameof(type), type, $"Unknown value type: {type}");
            }
            public object UnpackValue()
            {
                var type = _unpacker.PeekNextType();

                return(UnpackValue(type));
            }