use super::super::super::{errors::*, *};
pub fn add_i64(left: i64, right: i64) -> Result<i64, DispatchError> {
left.checked_add(right).ok_or_else(|| integer_overflow(left, right, "+"))
}
pub fn add_u64(left: u64, right: u64) -> Result<u64, DispatchError> {
left.checked_add(right).ok_or_else(|| unsigned_integer_overflow(left, right, "+"))
}
pub fn sub_i64(left: i64, right: i64) -> Result<i64, DispatchError> {
left.checked_sub(right).ok_or_else(|| integer_overflow(left, right, "+"))
}
pub fn sub_u64(left: u64, right: u64) -> Result<u64, DispatchError> {
left.checked_sub(right).ok_or_else(|| unsigned_integer_overflow(left, right, "+"))
}
pub fn mul_i64(left: i64, right: i64) -> Result<i64, DispatchError> {
left.checked_mul(right).ok_or_else(|| integer_overflow(left, right, "*"))
}
pub fn mul_u64(left: u64, right: u64) -> Result<u64, DispatchError> {
left.checked_mul(right).ok_or_else(|| unsigned_integer_overflow(left, right, "*"))
}
pub fn div_i64(left: i64, right: i64) -> Result<i64, DispatchError> {
left.checked_div(right).ok_or_else(|| integer_overflow(left, right, "/"))
}
pub fn div_u64(left: u64, right: u64) -> Result<u64, DispatchError> {
left.checked_div(right).ok_or_else(|| unsigned_integer_overflow(left, right, "/"))
}
pub fn rem_i64(left: i64, right: i64) -> Result<i64, DispatchError> {
left.checked_rem(right).ok_or_else(|| integer_overflow(left, right, "%"))
}