def _decompose_single_qubit_operation(
        self, op: cirq.Operation, moment_idx: int
    ) -> DecomposeResult:
        """Decomposes (connected component of) 1-qubit operations using gates from this gateset.

        By default, rewrites every operation using a single `cirq.PhasedXZGate`.

        Args:
            op: A single-qubit operation (can be a tagged `cirq.CircuitOperation` wrapping
                a connected component of single qubit unitaries).
            moment_idx: Index of the moment in which operation `op` occurs.

        Returns:
            A `cirq.OP_TREE` implementing `op` using gates from this gateset OR
            None or NotImplemented if decomposition of `op` is unknown.
        """
        return (
            ops.PhasedXZGate.from_matrix(protocols.unitary(op)).on(op.qubits[0])
            if protocols.has_unitary(op)
            else NotImplemented
        )
Decomposes (connected component of) 1-qubit operations using gates from this gateset.

        By default, rewrites every operation using a single `cirq.PhasedXZGate`.

        Args:
            op: A single-qubit operation (can be a tagged `cirq.CircuitOperation` wrapping
                a connected component of single qubit unitaries).
            moment_idx: Index of the moment in which operation `op` occurs.

        Returns:
            A `cirq.OP_TREE` implementing `op` using gates from this gateset OR
            None or NotImplemented if decomposition of `op` is unknown.
        
cirq-core/cirq/transformers/target_gatesets/compilation_target_gateset.py