2022-10-10 12:43:53 -07:00
|
|
|
//! Solana Rust-based SBF program utility functions and types
|
2019-06-21 02:43:50 -07:00
|
|
|
|
2023-09-01 00:26:13 -07:00
|
|
|
#![allow(clippy::arithmetic_side_effects)]
|
2023-03-12 22:28:34 -07:00
|
|
|
|
2020-10-23 17:22:10 -07:00
|
|
|
extern crate solana_program;
|
2019-06-21 02:43:50 -07:00
|
|
|
|
2019-08-28 17:19:40 -07:00
|
|
|
pub fn uadd(x: u128, y: u128) -> u128 {
|
2019-06-21 02:43:50 -07:00
|
|
|
x + y
|
|
|
|
}
|
2019-08-28 17:19:40 -07:00
|
|
|
pub fn usubtract(x: u128, y: u128) -> u128 {
|
|
|
|
x - y
|
|
|
|
}
|
|
|
|
pub fn umultiply(x: u128, y: u128) -> u128 {
|
|
|
|
x * y
|
|
|
|
}
|
|
|
|
pub fn udivide(n: u128, d: u128) -> u128 {
|
|
|
|
n / d
|
|
|
|
}
|
|
|
|
pub fn umodulo(n: u128, d: u128) -> u128 {
|
|
|
|
n % d
|
|
|
|
}
|
2019-07-08 21:28:05 -07:00
|
|
|
|
2019-08-28 17:19:40 -07:00
|
|
|
pub fn add(x: i128, y: i128) -> i128 {
|
|
|
|
x + y
|
|
|
|
}
|
|
|
|
pub fn subtract(x: i128, y: i128) -> i128 {
|
|
|
|
x - y
|
|
|
|
}
|
|
|
|
pub fn multiply(x: i128, y: i128) -> i128 {
|
|
|
|
x * y
|
|
|
|
}
|
|
|
|
pub fn divide(n: i128, d: i128) -> i128 {
|
|
|
|
n / d
|
|
|
|
}
|
|
|
|
pub fn modulo(n: i128, d: i128) -> i128 {
|
|
|
|
n % d
|
2019-08-26 13:31:06 -07:00
|
|
|
}
|