#ifndef _PARTS_HPP_
#define _PARTS_HPP_

#include "syselmts.hpp"
#include "pins.hpp"

#pragma once
class Module; ///< Forward declaration of the Module class.

class Part : public SystemElementContainer<Pin>
{
public:
    Part(std::string name);
    ~Part();
    Module *prnt; ///< Pointer to the parent module.
    void add(Pin *pin) override;
};

class Parts : public SystemElementContainer<Part>
{
public:
    Parts(void);
    Parts(std::vector<Part *> parts);
};

#endif // _PARTS_HPP_