nautilus_model/ffi/types/
money.rs1use std::ops::{AddAssign, SubAssign};
17
18use crate::types::{Currency, Money, money::MoneyRaw};
19
20#[unsafe(no_mangle)]
22#[cfg_attr(feature = "high-precision", allow(improper_ctypes_definitions))]
23pub extern "C" fn money_new(amount: f64, currency: Currency) -> Money {
24 Money::new(amount, currency)
26}
27
28#[unsafe(no_mangle)]
29#[cfg_attr(feature = "high-precision", allow(improper_ctypes_definitions))]
30pub extern "C" fn money_from_raw(raw: MoneyRaw, currency: Currency) -> Money {
31 Money::from_raw(raw, currency)
32}
33
34#[unsafe(no_mangle)]
35pub extern "C" fn money_as_f64(money: &Money) -> f64 {
36 money.as_f64()
37}
38
39#[unsafe(no_mangle)]
40#[cfg_attr(feature = "high-precision", allow(improper_ctypes_definitions))]
41pub extern "C" fn money_add_assign(mut a: Money, b: Money) {
42 a.add_assign(b);
43}
44
45#[unsafe(no_mangle)]
46#[cfg_attr(feature = "high-precision", allow(improper_ctypes_definitions))]
47pub extern "C" fn money_sub_assign(mut a: Money, b: Money) {
48 a.sub_assign(b);
49}