docs: def xmon_to_arc(xmon: XmonDevice) -> Architecture:
      """Generates a :math:`\\mathrm{t|ket}\\rangle` :py:class:`Architecture` object for a Cirq :py:class:`XmonDevice` .
      
      :param xmon: The device to convert
  
      :return: The corresponding :math:`\\mathrm{t|ket}\\rangle` :py:class:`Architecture`
      """
  
      nodes = len(xmon.qubits)
      indexed_qubits = _sort_row_col(xmon.qubits)
      pairs = []
      for qb in indexed_qubits:
          neighbours = xmon.neighbors_of(qb)
          #filter only higher index neighbours to avoid double counting edges
          forward_neighbours = filter(lambda x: indexed_qubits.index(x)>indexed_qubits.index(qb), neighbours)
          for x in forward_neighbours:
              pairs.append((indexed_qubits.index(qb), indexed_qubits.index(x)))
      return Architecture(pairs, nodes)