1*6777b538SAndroid Build Coastguard Worker // Copyright 2021 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_TEST_TEST_FUTURE_INTERNAL_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_TEST_TEST_FUTURE_INTERNAL_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <tuple> 9*6777b538SAndroid Build Coastguard Worker #include <type_traits> 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker namespace base::test::internal { 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker // Helper to only implement a method if the future holds one or more values 14*6777b538SAndroid Build Coastguard Worker template <typename Tuple> 15*6777b538SAndroid Build Coastguard Worker using EnableIfOneOrMoreValues = 16*6777b538SAndroid Build Coastguard Worker std::enable_if_t<(std::tuple_size<Tuple>::value > 0), bool>; 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker // Helper to only implement a method if the future holds a single value 19*6777b538SAndroid Build Coastguard Worker template <typename Tuple> 20*6777b538SAndroid Build Coastguard Worker using EnableIfSingleValue = 21*6777b538SAndroid Build Coastguard Worker std::enable_if_t<(std::tuple_size<Tuple>::value == 1), bool>; 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker // Helper to only implement a method if the future holds multiple values 24*6777b538SAndroid Build Coastguard Worker template <typename Tuple> 25*6777b538SAndroid Build Coastguard Worker using EnableIfMultiValue = 26*6777b538SAndroid Build Coastguard Worker std::enable_if_t<(std::tuple_size<Tuple>::value > 1), bool>; 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker } // namespace base::test::internal 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker #endif // BASE_TEST_TEST_FUTURE_INTERNAL_H_ 31