/**
* A NULL pointer is not an error (except for arg): it is simply IGNORED.
* For instance,
* diet_scalar_get(arg, &value, NULL),
* will only set the value to the value field of the (*arg) structure.
*
* NB: these are macros that let the user not worry about casting (int **)
* or (double **) etc. into (void **).
*/
/**
* Type: int diet_scalar_get((diet_arg_t *), (void *),
* (diet_persistence_mode_t *))
*/
#define diet_scalar_get(arg, value, mode) \
_scalar_get(arg, (void *)value, mode)
/**
* Type: int diet_vector_get((diet_arg_t *), (void **),
* (diet_persistence_mode_t *), (size_t *))
*/
#define diet_vector_get(arg, value, mode, size) \
_vector_get(arg, (void **)value, mode, size)
/**
* Type: int diet_matrix_get((diet_arg_t *), (void **),
* (diet_persistence_mode_t *),
* (size_t *), (size_t *), (diet_matrix_order_t *))
*/
#define diet_matrix_get(arg, value, mode, nb_rows, nb_cols, order) \
_matrix_get(arg, (void **)value, mode, nb_rows, nb_cols, order)
/**
* Type: int diet_string_get((diet_arg_t *), (char **),
* (diet_persistence_mode_t *))
*/
#define diet_string_get(arg, value, mode, length) \
_string_get(arg, (char **)value, mode)
/**
* Type: int diet_file_get((diet_arg_t *),
* (diet_persistence_mode_t *), (size_t *), (char **))
*/
#define diet_file_get(arg, mode, size, path) \
_file_get(arg, mode, size, (char **)path)