From 9fda49563f3da134ffc6a4c8c4716d4f8e9ec50c Mon Sep 17 00:00:00 2001 From: Taylor Cramer Date: Fri, 23 Oct 2026 12:27:29 -0700 Subject: [PATCH] Support `rs::Movable>` in `elf_bridge.cc`'s `MapResult` With Crubit's `movable_return_values` feature, `cc_bindings_from_rs` returns `rs_std::Result` by value wrapped in `::rs::Movable>`. Because C++ template argument deduction on `MapResult(rs_std::Result&&)` does not consider user-defined conversion operators on `::rs::Movable`, add a forwarding overload that unwraps `Wrapper>&&` into `rs_std::Result` before delegating to `MapResult`. PiperOrigin-RevId: 1005781644 --- elf/elf_bridge.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/elf/elf_bridge.cc b/elf/elf_bridge.cc index 544d5d51..35d0e340 100644 --- a/elf/elf_bridge.cc +++ b/elf/elf_bridge.cc @@ -71,6 +71,12 @@ absl::StatusOr MapResult(rs_std::Result&& r) { return std::string(security::crubit_helpers::StringViewFromVecU8(r.value())); } +template