eolian: add APIs for nullable/optional (+ lua bindings)
authorDaniel Kolesa <d.kolesa@samsung.com>
Thu, 12 Feb 2015 13:24:06 +0000 (13:24 +0000)
committerDaniel Kolesa <d.kolesa@samsung.com>
Thu, 12 Feb 2015 13:24:06 +0000 (13:24 +0000)
src/bindings/luajit/eolian.lua
src/lib/eolian/Eolian.h
src/lib/eolian/database_function_parameter_api.c

index f92f096..9868170 100644 (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
     }
 })
index 9464cdf..e553180 100644 (file)
@@ -1010,6 +1010,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.
  *
  * @param[in] function_id id of the function
index 744926e..6d7ad81 100644 (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;
+}