solend_sdk/math/
common.rs1use solana_program::program_error::ProgramError;
4
5pub const SCALE: usize = 18;
7pub const WAD: u64 = 1_000_000_000_000_000_000;
9pub const HALF_WAD: u64 = 500_000_000_000_000_000;
11pub const PERCENT_SCALER: u64 = 10_000_000_000_000_000;
13
14pub trait TrySub: Sized {
16 fn try_sub(self, rhs: Self) -> Result<Self, ProgramError>;
18}
19
20pub trait TryAdd: Sized {
22 fn try_add(self, rhs: Self) -> Result<Self, ProgramError>;
24}
25
26pub trait TryDiv<RHS>: Sized {
28 fn try_div(self, rhs: RHS) -> Result<Self, ProgramError>;
30}
31
32pub trait TryMul<RHS>: Sized {
34 fn try_mul(self, rhs: RHS) -> Result<Self, ProgramError>;
36}