#pragma once

#include "CircuitElement.h"

class Wire : public CircuitElement
{
public:
    Wire(CircuitElement* input, CircuitElement* output);

    CircuitElement* getInput() const;
    CircuitElement* getOutput() const;

    Type getType() const override
    {
        return Type::WIRE;
    }
private:
    CircuitElement* mInput{ nullptr };
    CircuitElement* mOutput{ nullptr };
};
using WirePtr = std::unique_ptr<Wire>;

class Fanout : public CircuitElement
{

};