/* | |
* Copyright 2022 Rive | |
*/ | |
#ifndef _RIVE_TYPE_CONVERSIONS_HPP_ | |
#define _RIVE_TYPE_CONVERSIONS_HPP_ | |
#include "rive/rive_types.hpp" | |
#include <limits> | |
namespace rive | |
{ | |
template <typename T> bool fitsIn(intmax_t x) | |
{ | |
return x >= std::numeric_limits<T>::min() && x <= std::numeric_limits<T>::max(); | |
} | |
template <typename T> T castTo(intmax_t x) | |
{ | |
assert(sizeof(T) <= 4); // don't cast to 64bit types | |
assert(fitsIn<T>(x)); | |
return static_cast<T>(x); | |
} | |
} // namespace rive | |
#endif |