23 const std::vector<std::vector<T>>& serverPref,
24 const std::vector<T>& clientPref) {
25 for (
const auto& prefTier : serverPref) {
26 if (prefTier.size() == 1) {
27 if (std::find(clientPref.begin(), clientPref.end(), prefTier.front()) !=
29 return prefTier.front();
32 for (
const auto& pref : clientPref) {
33 if (std::find(prefTier.begin(), prefTier.end(), pref) !=
49 const std::vector<T>& serverPref,
50 const std::vector<T>& clientPref) {
51 for (
const auto& pref : serverPref) {
52 if (std::find(clientPref.begin(), clientPref.end(), pref) !=
folly::Optional< T > negotiate(const std::vector< std::vector< T >> &serverPref, const std::vector< T > &clientPref)