q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=430169053570ba4c3dc21ec2ae07f5b295939f6a

commit 430169053570ba4c3dc21ec2ae07f5b295939f6a
Author: Daniel Kolesa <[email protected]>
Date:   Thu Feb 12 13:24:06 2015 +0000

    eolian: add APIs for nullable/optional (+ lua bindings)
---
 src/bindings/luajit/eolian.lua                   | 10 ++++++++++
 src/lib/eolian/Eolian.h                          | 20 ++++++++++++++++++++
 src/lib/eolian/database_function_parameter_api.c | 14 ++++++++++++++
 3 files changed, 44 insertions(+)

diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua
index f92f096..9868170 100644
--- a/src/bindings/luajit/eolian.lua
+++ b/src/bindings/luajit/eolian.lua
@@ -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
     }
 })
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index 9464cdf..e553180 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -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
diff --git a/src/lib/eolian/database_function_parameter_api.c 
b/src/lib/eolian/database_function_parameter_api.c
index 744926e..6d7ad81 100644
--- a/src/lib/eolian/database_function_parameter_api.c
+++ b/src/lib/eolian/database_function_parameter_api.c
@@ -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;
+}

-- 


Reply via email to