Open danakj opened 10 months ago
Rust does not have this ability due to lack of variadics, though the tuple_list crate has something: https://docs.rs/tuple_list/latest/tuple_list/trait.AsTupleOfRefs.html
constexpr auto as() const& { return [this]<size_t... Is>(std::index_sequence<Is...>) { return ::sus::Tuple<const std::remove_reference_t<Ts>&...>( tuple_.template at<Is>()...); }(std::make_index_sequence<sizeof...(Ts)>()); } constexpr auto as_mut() & { return [this]<size_t... Is>(std::index_sequence<Is...>) { return ::sus::Tuple<Ts&...>(tuple_.template at_mut<Is>()...); }(std::make_index_sequence<sizeof...(Ts)>()); }
These methods of Choice should be able to be implemented as just tuple_.as_ref() or tuple_.as_mut().
Choice
tuple_.as_ref()
tuple_.as_mut()
Rust does not have this ability due to lack of variadics, though the tuple_list crate has something: https://docs.rs/tuple_list/latest/tuple_list/trait.AsTupleOfRefs.html
These methods of
Choice
should be able to be implemented as justtuple_.as_ref()
ortuple_.as_mut()
.