cirq.protocols.SupportsQasmWithArgsAndQubits

An object that can be turned into QASM code if it knows its qubits.

Returning NotImplemented or None means "don't know how to turn into QASM". In that case fallbacks based on decomposition and known unitaries will be used instead.