macro_rules! define_vault_function {
    (
        $registry:expr
        =>
        $(mod $module_name:ident)?
        fn
        $name:ident
        ($( $argument_name:ident : $argument_type:ty),*)
        ->
        $return_type:ty
        $code:block
    ) => { ... };
}