Trait soroban_fixed_point_math::FixedPoint

source ·
pub trait FixedPoint: Sized {
    // Required methods
    fn fixed_mul_floor(self, y: Self, denominator: Self) -> Option<Self>;
    fn fixed_mul_ceil(self, y: Self, denominator: Self) -> Option<Self>;
    fn fixed_div_floor(self, y: Self, denominator: Self) -> Option<Self>;
    fn fixed_div_ceil(self, y: Self, denominator: Self) -> Option<Self>;
}
Expand description

Fixed point trait for computing fixed point calculations with native rust types.

Required Methods§

source

fn fixed_mul_floor(self, y: Self, denominator: Self) -> Option<Self>

Safely calculates floor(x * y / denominator). Returns None if a phantom overflow occurs or if the denominator is 0.

source

fn fixed_mul_ceil(self, y: Self, denominator: Self) -> Option<Self>

Safely calculates ceil(x * y / denominator). Returns None if a phantom overflow occurs or if the denominator is 0.

source

fn fixed_div_floor(self, y: Self, denominator: Self) -> Option<Self>

Safely calculates floor(x * denominator / y). Returns None if a phantom overflow occurs or if the denominator is 0.

source

fn fixed_div_ceil(self, y: Self, denominator: Self) -> Option<Self>

Safely calculates ceil(x * denominator / y). Returns None if a phantom overflow occurs or if the denominator is 0.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl FixedPoint for i64

source§

fn fixed_mul_floor(self, y: i64, denominator: i64) -> Option<i64>

source§

fn fixed_mul_ceil(self, y: i64, denominator: i64) -> Option<i64>

source§

fn fixed_div_floor(self, y: i64, denominator: i64) -> Option<i64>

source§

fn fixed_div_ceil(self, y: i64, denominator: i64) -> Option<i64>

source§

impl FixedPoint for i128

source§

fn fixed_mul_floor(self, y: i128, denominator: i128) -> Option<i128>

source§

fn fixed_mul_ceil(self, y: i128, denominator: i128) -> Option<i128>

source§

fn fixed_div_floor(self, y: i128, denominator: i128) -> Option<i128>

source§

fn fixed_div_ceil(self, y: i128, denominator: i128) -> Option<i128>

source§

impl FixedPoint for u64

source§

fn fixed_mul_floor(self, y: u64, denominator: u64) -> Option<u64>

source§

fn fixed_mul_ceil(self, y: u64, denominator: u64) -> Option<u64>

source§

fn fixed_div_floor(self, y: u64, denominator: u64) -> Option<u64>

source§

fn fixed_div_ceil(self, y: u64, denominator: u64) -> Option<u64>

source§

impl FixedPoint for u128

source§

fn fixed_mul_floor(self, y: u128, denominator: u128) -> Option<u128>

source§

fn fixed_mul_ceil(self, y: u128, denominator: u128) -> Option<u128>

source§

fn fixed_div_floor(self, y: u128, denominator: u128) -> Option<u128>

source§

fn fixed_div_ceil(self, y: u128, denominator: u128) -> Option<u128>

Implementors§