#pragma once

#include "Ship/Cargo.h"

#include <memory>

class DecoratedCargo : public Cargo {
public:
    explicit DecoratedCargo(std::unique_ptr<Cargo>&& cargo);

protected:
    Cargo& cargo() { return *_cargo; }
    const Cargo& cargo() const { return *_cargo; }

private:
    std::unique_ptr<Cargo> _cargo;
};