Add wiring

This commit is contained in:
jmsgrogan 2023-01-26 14:26:33 +00:00
parent 20c13c1cdf
commit a74dfd5f5f
20 changed files with 553 additions and 14 deletions

View file

@ -11,9 +11,20 @@ public:
CLASSICAL
};
AbstractQuantumWire(QuantumCircuitElement* input, QuantumCircuitElement* output);
virtual ~AbstractQuantumWire() = default;
virtual WireType getWireType() const = 0;
bool isFullyConnected() const override
{
return mInput && mOutput;
}
protected:
QuantumCircuitElement* mInput{ nullptr };
QuantumCircuitElement* mOutput{ nullptr };
};
class QuantumWire : public AbstractQuantumWire
@ -26,9 +37,6 @@ public:
Type getType() const override;
WireType getWireType() const override;
private:
QuantumCircuitElement* mInput{ nullptr };
QuantumCircuitElement* mOutput{ nullptr };
};
using QuantumWirePtr = std::unique_ptr<QuantumWire>;