use crate::{AnyNumeric, FromDatum, direct_function_call_as_datum, pg_sys};
pub mod cmp;
pub mod convert;
pub(super) mod convert_anynumeric;
pub(super) mod convert_numeric;
pub(super) mod convert_primitive;
pub mod datum;
pub mod error;
pub mod hash;
pub mod ops;
pub mod serde;
pub mod sql;
#[inline]
pub(super) fn call_numeric_func(
func: unsafe fn(pg_sys::FunctionCallInfo) -> pg_sys::Datum,
args: &[Option<pg_sys::Datum>],
) -> AnyNumeric {
unsafe {
let numeric_datum = direct_function_call_as_datum(func, args).unwrap_unchecked();
let anynumeric = AnyNumeric::from_datum(numeric_datum, false);
pg_sys::pfree(numeric_datum.cast_mut_ptr());
anynumeric.unwrap()
}
}