/**
* On the server side, these functions should not be used on arguments, but only
* on convertors (see section 5.5).
* If mode is DIET_PERSISTENCE_MODE_COUNT,
* or if base_type is DIET_BASE_TYPE_COUNT,
* or if order is DIET_MATRIX_ORDER_COUNT,
* or if size, nb_rows, nb_cols or length is 0,
* or if path is NULL,
* then the corresponding field is not modified.
*/
int
diet_scalar_set(diet_arg_t* arg, void* value, diet_persistence_mode_t mode,
diet_base_type_t base_type);
int
diet_vector_set(diet_arg_t* arg, void* value, diet_persistence_mode_t mode,
diet_base_type_t base_type, size_t size);
/* Matrices can be stored by rows or by columns */
typedef enum {
DIET_COL_MAJOR = 0,
DIET_ROW_MAJOR,
DIET_MATRIX_ORDER_COUNT
} diet_matrix_order_t;
int
diet_matrix_set(diet_arg_t* arg, void* value, diet_persistence_mode_t mode,
diet_base_type_t base_type,
size_t nb_rows, size_t nb_cols, diet_matrix_order_t order);
int
diet_string_set(diet_arg_t* arg, char* value, diet_persistence_mode_t mode);
/* The file size is computed and stocked in a field of arg
! Warning ! The path is not duplicated !!! */
int
diet_file_set(diet_arg_t* arg, diet_persistence_mode_t mode, char* path);