diff -r 114ecdf63ce5 -r 221728aeeb7e src/nalgebra_support.rs --- a/src/nalgebra_support.rs Wed Sep 03 19:37:15 2025 -0500 +++ b/src/nalgebra_support.rs Wed Sep 03 19:55:05 2025 -0500 @@ -146,6 +146,19 @@ ShapeConstraint: StridesOk + StridesOk, { #[inline] + fn either<'b, R>( + self, + f: impl FnOnce(OMatrix) -> R, + _g: impl FnOnce(MatrixView<'b, E, M, K, Dyn, Dyn>) -> R, + ) -> R + where + Self: 'b, + { + // TODO: should not turn non-owned matrices into owned + f(self.into_owned()) + } + + #[inline] fn eval_decompose<'b, R>(self, f: impl FnOnce(OMatrix) -> R) -> R where Self: 'b, @@ -190,6 +203,18 @@ DefaultAllocator: Allocator, ShapeConstraint: StridesOk + StridesOk, { + #[inline] + fn either<'b, R>( + self, + _f: impl FnOnce(OMatrix) -> R, + g: impl FnOnce(MatrixView<'b, E, M, K, Dyn, Dyn>) -> R, + ) -> R + where + Self: 'b, + { + g(self.as_view()) + } + fn eval_decompose<'b, R>(self, f: impl FnOnce(OMatrix) -> R) -> R where Self: 'b,