pub fn factor_second(self) -> (Either<A, B>, T) {
        match self {
            Self::Left((a, x)) => (Either::Left(a), x),
            Self::Right((b, x)) => (Either::Right(b), x),
        }
    }
Factor out a homogeneous type from an either of pairs.

Here, the homogeneous type is the second element of the pairs.
futures-util/src/future/either.rs