Appendix C. Rax external functions API

Table of Contents

e_rax_base_t
u_rax_value_t
rax_value_new
rax_value_link
rax_value_drop
rax_value_cmp
rax_type_new_1
rax_type_new_2
rax_type_link
rax_type_drop
rax_type_cmp
rax_type_new_from_string
rax_type_is_varsize
rax_type_is_compound
rax_type_get_base
rax_type_oset_element_type_ref
rax_tfield_new
rax_tfield_link
rax_tfield_drop
rax_tfield_cmp
rax_tfield_get_label_ref
rax_tfield_get_type_ref
rax_type_tuple_n_tfield
rax_type_tuple_a_tfield_ref
rax_type_tuple_get_tfield_label_ref
rax_type_tuple_get_tfield_type_ref
rax_type_tuple_get_index_by_label
rax_type_tuple_get_index_by_label_nr
rax_type_tuple_add_tfield
rax_type_tuple_add_tfield_type
rax_type_tuple_add_tfield_base
rax_type_tuple_new_cat
rax_type_tuple_new_natural_cat
rax_type_function_get_in_type_ref
rax_type_function_get_out_type_ref
rax_variable_new
rax_variable_link
rax_variable_drop
rax_variable_cmp
rax_variable_get_type_ref
rax_variable_get_value_ref
rax_value_eq_false
rax_value_null
rax_string_cmp
rax_string_new
rax_string_link
rax_string_drop
rax_string_cat
rax_string_catf
rax_string_n_cat
rax_value_oset_cmp
rax_value_oset_contains
rax_value_oset_get_enum_sorted
rax_value_oset_get_enum_un_sorted
rax_value_oset_next_value_new
rax_value_oset_drop_enum
rax_value_oset_get_size
rax_value_oset_write_new
rax_value_oset_write_value
rax_value_oset_write_close
rax_value_tuple_cmp
rax_value_time_cmp
rax_value_relative_cmp
rax_value_interval_cmp
rax_value_interval_new_tand
rax_value_interval_do_touch
rax_value_tuple_new_vararg
rax_value_tuple_new_from_a
rax_value_tuple_new_simplex
rax_value_tuple_link_simplex
rax_value_tuple_drop_simplex
rax_value_tuple_array_ref
rax_value_tuple_ref_by_index
rax_value_function_call
rax_value_time_add_relative
rax_value_time_add_absolute
rax_value_time_sub_relative
rax_value_time_sub_absolute
rax_value_time_absolute_diff
rax_warn_runtime
rax_fatal_runtime
rax_type_to_new_string
rax_value_to_new_string
rax_condef_put
rax_condef_get_ref

In this appendix, we will describe the Rax API in more detail.

e_rax_base_t

    typedef enum e_rax_base {
      rax_e_base_na,
      rax_e_base_boolean,
      rax_e_base_number,
      rax_e_base_real,
      rax_e_base_time,
      rax_e_base_absolute,
      rax_e_base_relative,
      rax_e_base_interval,
      rax_e_base_modulo,
      rax_e_base_string,
      rax_e_base_oset,
      rax_e_base_tuple,
      rax_e_base_function,
      ...
    } e_rax_base_t;
           

The e_rax_base_t enumeration defines constants used for various Rax base types. These constants are used predominantly to create new Rax types.

Example: 

    rax_type_t number_type = rax_type_new(rax_e_base_number);