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)); }