ComponentTextKit/Utility/CKFunctor.h (42 lines of code) (raw):

/* * Copyright (c) 2014-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ #import <ComponentKit/CKDefines.h> #if CK_NOT_SWIFT #import <Foundation/Foundation.h> /* generic functors */ namespace CK { template<class T> struct DescribeFunctor { NSString *operator()(const T &t) const { return [NSString stringWithFormat:@"%d", static_cast<int>(t)]; } }; template<class T> struct HashFunctor { size_t operator()(const T &key) const { return (size_t)(key); } }; template<class T> struct EqualFunctor { bool operator()(const T &left, const T&right) const { return left == right; } }; template<class T> struct CompareFunctor { bool operator()(const T &left, const T &right) const { return (int)left < (int)right; }; }; template<class T> struct RoundToIntegerFunctor { T operator()(const T &t) const { return t; } }; template<class T> struct RoundToSubFunctor { T operator()(const T &t, float sub) const { return t; } }; } #endif