q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9c249d0467aa4a174dffe2a8292fb66c6c5f4228

commit 9c249d0467aa4a174dffe2a8292fb66c6c5f4228
Author: Daniel Kolesa <[email protected]>
Date:   Wed Jul 3 14:27:04 2019 +0200

    elua: add error api into eolian bindings
---
 src/bindings/luajit/eolian.lua | 57 ++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 55 insertions(+), 2 deletions(-)

diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua
index 07959789ea..e92e587e0a 100644
--- a/src/bindings/luajit/eolian.lua
+++ b/src/bindings/luajit/eolian.lua
@@ -26,6 +26,7 @@ ffi.cdef [[
     typedef struct _Eolian_Event Eolian_Event;
     typedef struct _Eolian_Expression Eolian_Expression;
     typedef struct _Eolian_Variable Eolian_Variable;
+    typedef struct _Eolian_Error Eolian_Error;
     typedef struct _Eolian_Struct_Type_Field Eolian_Struct_Type_Field;
     typedef struct _Eolian_Enum_Type_Field Eolian_Enum_Type_Field;
     typedef struct _Eolian_Documentation Eolian_Documentation;
@@ -50,7 +51,8 @@ ffi.cdef [[
         EOLIAN_OBJECT_PART,
         EOLIAN_OBJECT_IMPLEMENT,
         EOLIAN_OBJECT_CONSTRUCTOR,
-        EOLIAN_OBJECT_DOCUMENTATION
+        EOLIAN_OBJECT_DOCUMENTATION,
+        EOLIAN_OBJECT_ERROR
     } Eolian_Object_Type;
 
     typedef enum
@@ -331,8 +333,10 @@ ffi.cdef [[
     Eina_Iterator *eolian_unit_classes_get(const Eolian_Unit *unit);
     const Eolian_Variable *eolian_unit_global_by_name_get(const Eolian_Unit 
*unit, const char *name);
     const Eolian_Variable *eolian_unit_constant_by_name_get(const Eolian_Unit 
*unit, const char *name);
+    const Eolian_Error *eolian_unit_error_by_name_get(const Eolian_Unit *unit, 
const char *name);
     Eina_Iterator *eolian_unit_constants_get(const Eolian_Unit *unit);
     Eina_Iterator *eolian_unit_globals_get(const Eolian_Unit *unit);
+    Eina_Iterator *eolian_unit_errors_get(const Eolian_Unit *unit);
     const Eolian_Typedecl *eolian_unit_alias_by_name_get(const Eolian_Unit 
*unit, const char *name);
     const Eolian_Typedecl *eolian_unit_struct_by_name_get(const Eolian_Unit 
*unit, const char *name);
     const Eolian_Typedecl *eolian_unit_enum_by_name_get(const Eolian_Unit 
*unit, const char *name);
@@ -343,6 +347,7 @@ ffi.cdef [[
     const Eolian_Class *eolian_state_class_by_file_get(const Eolian_State 
*state, const char *file_name);
     Eina_Iterator *eolian_state_globals_by_file_get(const Eolian_State *state, 
const char *file_name);
     Eina_Iterator *eolian_state_constants_by_file_get(const Eolian_State 
*state, const char *file_name);
+    Eina_Iterator *eolian_state_errors_by_file_get(const Eolian_State *state, 
const char *file_name);
     Eina_Iterator *eolian_state_aliases_by_file_get(const Eolian_State *state, 
const char *file_name);
     Eina_Iterator *eolian_state_structs_by_file_get(const Eolian_State *state, 
const char *file_name);
     Eina_Iterator *eolian_state_enums_by_file_get(const Eolian_State *state, 
const char *file_name);
@@ -435,6 +440,7 @@ ffi.cdef [[
     const Eolian_Type *eolian_typedecl_aliased_base_get(const Eolian_Typedecl 
*tp);
 
     const Eolian_Class *eolian_type_class_get(const Eolian_Type *tp);
+    const Eolian_Error *eolian_type_error_get(const Eolian_Type *tp);
     Eina_Bool eolian_type_is_owned(const Eolian_Type *tp);
     Eina_Bool eolian_type_is_const(const Eolian_Type *tp);
     Eina_Bool eolian_type_is_ptr(const Eolian_Type *tp);
@@ -474,6 +480,10 @@ ffi.cdef [[
     Eolian_Doc_Token_Type eolian_doc_token_type_get(const Eolian_Doc_Token 
*tok);
     char *eolian_doc_token_text_get(const Eolian_Doc_Token *tok);
     Eolian_Object_Type eolian_doc_token_ref_resolve(const Eolian_Doc_Token 
*tok, const Eolian_State *state, const Eolian_Object **data, const 
Eolian_Object **data2);
+
+    const char *eolian_error_message_get(const Eolian_Error *err);
+    const Eolian_Documentation *eolian_error_documentation_get(const 
Eolian_Error *err);
+    Eina_Bool eolian_error_is_extern(const Eolian_Error *err);
 ]]
 
 local cutil = require("cutil")
@@ -524,7 +534,8 @@ M.object_type = {
     PART               = 11,
     IMPLEMENT          = 12,
     CONSTRUCTOR        = 13,
-    DOCUMENTATION      = 14
+    DOCUMENTATION      = 14,
+    ERROR              = 15
 }
 
 M.object_scope = {
@@ -679,6 +690,12 @@ local unit_idx, wrap_unit = gen_wrap {
         return v
     end,
 
+    error_by_name_get = function(self, name)
+        local v = eolian.eolian_unit_error_by_name_get(cast_unit(self), name)
+        if v == nil then return nil end
+        return v
+    end,
+
     constants_get = function(self)
         return Ptr_Iterator("const Eolian_Variable *",
             eolian.eolian_unit_constants_get(cast_unit(self)))
@@ -689,6 +706,11 @@ local unit_idx, wrap_unit = gen_wrap {
             eolian.eolian_unit_globals_get(cast_unit(self)))
     end,
 
+    errors_get = function(self)
+        return Ptr_Iterator("const Eolian_Error *",
+            eolian.eolian_unit_errors_get(cast_unit(self)))
+    end,
+
     alias_by_name_get = function(self, name)
         local v = eolian.eolian_unit_alias_by_name_get(cast_unit(self), name)
         if v == nil then return nil end
@@ -852,6 +874,11 @@ ffi.metatype("Eolian_State", {
                 eolian.eolian_state_constants_by_file_get(self, fname))
         end,
 
+        errors_by_file_get = function(unit, fname)
+            return Ptr_Iterator("const Eolian_Error*",
+                eolian.eolian_state_errors_by_file_get(self, fname))
+        end,
+
         aliases_by_file_get = function(self, fname)
             return Ptr_Iterator("const Eolian_Typedecl *",
                 eolian.eolian_state_aliases_by_file_get(self, fname))
@@ -1119,6 +1146,12 @@ M.Type = ffi.metatype("Eolian_Type", {
             return v
         end,
 
+        error_get = function(self)
+            local v = eolian.eolian_type_error_get(self)
+            if v == nil then return nil end
+            return v
+        end,
+
         is_owned = function(self)
             return eolian.eolian_type_is_owned(self) ~= 0
         end,
@@ -1736,6 +1769,26 @@ M.Variable = ffi.metatype("Eolian_Variable", {
     }
 })
 
+M.Error = ffi.metatype("Eolian_Error", {
+    __index = wrap_object {
+        documentation_get = function(self)
+            local v = eolian.eolian_error_documentation_get(self)
+            if v == nil then return nil end
+            return v
+        end,
+
+        message_get = function(self)
+            local v = eolian.eolian_error_message_get(self)
+            if v == nil then return nil end
+            return ffi.string(v)
+        end,
+
+        is_extern = function(self)
+            return eolian.eolian_error_is_extern(self) ~= 0
+        end
+    }
+})
+
 M.Documentation = ffi.metatype("Eolian_Documentation", {
     __index = wrap_object {
         summary_get = function(self)

-- 


Reply via email to