multiversx-sc 0.39.4

MultiversX smart contract API
use core::convert::TryInto;

use crate::{
    api::{ErrorApiImpl, ManagedTypeApi},
    err_msg,
};

pub(crate) fn cast_to_i64<M, T>(value: T) -> i64
where
    M: ManagedTypeApi,
    T: TryInto<i64>,
{
    value
        .try_into()
        .unwrap_or_else(|_| M::error_api_impl().signal_error(err_msg::CAST_TO_I64_ERROR))
}