eolian: add APIs for nullable/optional (+ lua bindings)

This commit is contained in:
Daniel Kolesa 2015-02-12 13:24:06 +00:00
parent 5b8f3a083b
commit 4301690535
3 changed files with 44 additions and 0 deletions

View File

@ -227,6 +227,8 @@ ffi.cdef [[
const char *eolian_parameter_description_get(const Eolian_Function_Parameter *param);
Eina_Bool eolian_parameter_const_attribute_get(const Eolian_Function_Parameter *param_desc, Eina_Bool is_get);
Eina_Bool eolian_parameter_is_nonull(const Eolian_Function_Parameter *param_desc);
Eina_Bool eolian_parameter_is_nullable(const Eolian_Function_Parameter *param_desc);
Eina_Bool eolian_parameter_is_optional(const Eolian_Function_Parameter *param_desc);
const Eolian_Type *eolian_function_return_type_get(const Eolian_Function *function_id, Eolian_Function_Type ftype);
const Eolian_Expression *eolian_function_return_default_value_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
const char *eolian_function_return_comment_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
@ -766,6 +768,14 @@ ffi.metatype("Eolian_Function_Parameter", {
is_nonull = function(self)
return eolian.eolian_parameter_is_nonull(self) ~= 0
end,
is_nullable = function(self)
return eolian.eolian_parameter_is_nullable(self) ~= 0
end,
is_optional = function(self)
return eolian.eolian_parameter_is_optional(self) ~= 0
end
}
})

View File

@ -1009,6 +1009,26 @@ EAPI Eina_Bool eolian_parameter_const_attribute_get(const Eolian_Function_Parame
*/
EAPI Eina_Bool eolian_parameter_is_nonull(const Eolian_Function_Parameter *param_desc);
/*
* @brief Indicates if a parameter is nullable.
*
* @param[in] param_desc parameter handle
* @return EINA_TRUE if nullable, EINA_FALSE otherwise
*
* @ingroup Eolian
*/
EAPI Eina_Bool eolian_parameter_is_nullable(const Eolian_Function_Parameter *param_desc);
/*
* @brief Indicates if a parameter is optional.
*
* @param[in] param_desc parameter handle
* @return EINA_TRUE if optional, EINA_FALSE otherwise
*
* @ingroup Eolian
*/
EAPI Eina_Bool eolian_parameter_is_optional(const Eolian_Function_Parameter *param_desc);
/*
* @brief Get the return type of a function.
*

View File

@ -56,3 +56,17 @@ eolian_parameter_is_nonull(const Eolian_Function_Parameter *param)
EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE);
return param->nonull;
}
EAPI Eina_Bool
eolian_parameter_is_nullable(const Eolian_Function_Parameter *param)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE);
return param->nullable;
}
EAPI Eina_Bool
eolian_parameter_is_optional(const Eolian_Function_Parameter *param)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE);
return param->optional;
}