#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_TEST_UTIL_H_
#define CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_TEST_UTIL_H_
#include <utility>
#include <vector>
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace base {
class RunLoop;
}
namespace storage {
class FileSystemURL;
}
namespace sync_file_system {
template <typename T>
struct TypeTraits { … };
template <>
struct TypeTraits<storage::FileSystemURL> { … };
TypeTraits<std::vector<T>>;
template <typename Arg1, typename Arg2, typename Param1, typename Param2>
void ReceiveResult2(bool* done,
Arg1* arg1_out,
Arg2* arg2_out,
Param1 arg1,
Param2 arg2) { … }
template <typename R>
void AssignAndQuit(base::RunLoop* run_loop, R* result_out, R result);
template <typename R>
base::OnceCallback<void(R)> AssignAndQuitCallback(base::RunLoop* run_loop,
R* result);
template <typename Arg>
base::OnceCallback<void(typename TypeTraits<Arg>::ParamType)>
CreateResultReceiver(Arg* arg_out);
template <typename Arg1, typename Arg2>
base::OnceCallback<void(typename TypeTraits<Arg1>::ParamType,
typename TypeTraits<Arg2>::ParamType)>
CreateResultReceiver(Arg1* arg1_out, Arg2* arg2_out) { … }
}
#endif