use super::funejson::Value; use super::money_amount::{assert_same_currency, money, money_from_value, money_to_value, Money}; /// # Panics /// Panics if the two amounts are in different currencies. pub fn add_money(a: &Money, b: &Money) -> Money { assert_same_currency(a, b); money(a.minor + b.minor, &a.currency) } /// # Panics /// Panics if the two amounts are in different currencies. pub fn subtract_money(a: &Money, b: &Money) -> Money { assert_same_currency(a, b); money(a.minor - b.minor, &a.currency) } pub fn negate_money(a: &Money) -> Money { money(-a.minor, &a.currency) } pub fn fune_vector(args: &[Value]) -> Value { money_to_value(&add_money( &money_from_value(&args[0]), &money_from_value(&args[1]), )) }