forked from enlightenment/efl
eolian: rename eolian_typedecl_enum_field_c_name_get
This is to allow for better object oriented APIs, as the `c_name` field would be inherited from Object. This also makes it more clear in C.
This commit is contained in:
parent
4ab1f2388e
commit
b3a870c7bb
|
@ -68,7 +68,7 @@ _generate_ref(const Eolian_State *state, const char *refn, Eina_Strbuf *wbuf)
|
|||
eina_stringshare_del(bname);
|
||||
goto noref;
|
||||
}
|
||||
Eina_Stringshare *str = eolian_typedecl_enum_field_c_name_get(efl);
|
||||
Eina_Stringshare *str = eolian_typedecl_enum_field_c_constant_get(efl);
|
||||
eina_strbuf_append(wbuf, str);
|
||||
eina_stringshare_del(bname);
|
||||
return;
|
||||
|
|
|
@ -81,7 +81,7 @@ _type_generate(const Eolian_State *state, const Eolian_Typedecl *tp,
|
|||
const Eolian_Expression *vale =
|
||||
eolian_typedecl_enum_field_value_get(memb, EINA_FALSE);
|
||||
Eina_Stringshare *membn =
|
||||
eolian_typedecl_enum_field_c_name_get(memb);
|
||||
eolian_typedecl_enum_field_c_constant_get(memb);
|
||||
if (!vale)
|
||||
eina_strbuf_append_printf(buf, " %s", membn);
|
||||
else
|
||||
|
|
|
@ -1174,7 +1174,7 @@ int main(int argc, char** argv)
|
|||
, ef_end; ef != ef_end; ++ef)
|
||||
{
|
||||
auto field_name = ::eolian_typedecl_enum_field_name_get(&*ef);
|
||||
auto field_c_name = ::eolian_typedecl_enum_field_c_name_get(&*ef);
|
||||
auto field_c_name = ::eolian_typedecl_enum_field_c_constant_get(&*ef);
|
||||
if (!field_name || !field_c_name)
|
||||
{
|
||||
EINA_CXX_DOM_LOG_ERR(eolian::js::domain) << "Could not get enum field name";
|
||||
|
|
|
@ -419,7 +419,7 @@ ffi.cdef [[
|
|||
const Eolian_Type *eolian_typedecl_struct_field_type_get(const Eolian_Struct_Type_Field *fl);
|
||||
Eina_Iterator *eolian_typedecl_enum_fields_get(const Eolian_Typedecl *tp);
|
||||
const Eolian_Enum_Type_Field *eolian_typedecl_enum_field_get(const Eolian_Typedecl *tp, const char *field);
|
||||
const char *eolian_typedecl_enum_field_c_name_get(const Eolian_Enum_Type_Field *fl);
|
||||
const char *eolian_typedecl_enum_field_c_constant_get(const Eolian_Enum_Type_Field *fl);
|
||||
const Eolian_Documentation *eolian_typedecl_enum_field_documentation_get(const Eolian_Enum_Type_Field *fl);
|
||||
const Eolian_Expression *eolian_typedecl_enum_field_value_get(const Eolian_Enum_Type_Field *fl, Eina_Bool force);
|
||||
|
||||
|
@ -979,7 +979,7 @@ ffi.metatype("Eolian_Struct_Type_Field", {
|
|||
ffi.metatype("Eolian_Enum_Type_Field", {
|
||||
__index = wrap_object {
|
||||
c_name_get = function(self)
|
||||
local v = eolian.eolian_typedecl_enum_field_c_name_get(self)
|
||||
local v = eolian.eolian_typedecl_enum_field_c_constant_get(self)
|
||||
if v == nil then return nil end
|
||||
return ffi_stringshare(v)
|
||||
end,
|
||||
|
|
|
@ -2469,7 +2469,7 @@ eolian_typedecl_enum_field_name_get(const Eolian_Enum_Type_Field *field)
|
|||
}
|
||||
|
||||
/*
|
||||
* @brief Get the C name of a field of an enum type.
|
||||
* @brief Get the C constant name used to refer to a particular enum field.
|
||||
*
|
||||
* The user of the API is responsible for the resulting stringshare.
|
||||
*
|
||||
|
@ -2478,7 +2478,7 @@ eolian_typedecl_enum_field_name_get(const Eolian_Enum_Type_Field *field)
|
|||
*
|
||||
* @ingroup Eolian
|
||||
*/
|
||||
EAPI Eina_Stringshare *eolian_typedecl_enum_field_c_name_get(const Eolian_Enum_Type_Field *fl);
|
||||
EAPI Eina_Stringshare *eolian_typedecl_enum_field_c_constant_get(const Eolian_Enum_Type_Field *fl);
|
||||
|
||||
/*
|
||||
* @brief Get the documentation of a field of an enum type.
|
||||
|
|
|
@ -86,7 +86,7 @@ eolian_typedecl_enum_field_get(const Eolian_Typedecl *tp, const char *field)
|
|||
}
|
||||
|
||||
EAPI Eina_Stringshare *
|
||||
eolian_typedecl_enum_field_c_name_get(const Eolian_Enum_Type_Field *fl)
|
||||
eolian_typedecl_enum_field_c_constant_get(const Eolian_Enum_Type_Field *fl)
|
||||
{
|
||||
Eina_Stringshare *ret;
|
||||
Eina_Strbuf *buf;
|
||||
|
|
|
@ -1474,7 +1474,7 @@ struct enum_value_def
|
|||
enum_value_def(Eolian_Enum_Type_Field const* enum_field, Eolian_Unit const*)
|
||||
{
|
||||
name = eolian_typedecl_enum_field_name_get(enum_field);
|
||||
c_name = eolian_typedecl_enum_field_c_name_get(enum_field);
|
||||
c_name = eolian_typedecl_enum_field_c_constant_get(enum_field);
|
||||
auto exp = eolian_typedecl_enum_field_value_get(enum_field, EINA_TRUE);
|
||||
value = eolian_expression_eval(exp, EOLIAN_MASK_INT); // FIXME hardcoded int
|
||||
documentation = eolian_typedecl_enum_field_documentation_get(enum_field);
|
||||
|
|
|
@ -1190,8 +1190,8 @@ class Enum_Type_Field(Object):
|
|||
return "<eolian.Enum_Type_Field '{0.name}', c_name='{0.c_name}'>".format(self)
|
||||
|
||||
@cached_property
|
||||
def c_name(self):
|
||||
s = lib.eolian_typedecl_enum_field_c_name_get(self)
|
||||
def c_constant(self):
|
||||
s = lib.eolian_typedecl_enum_field_c_constant_get(self)
|
||||
ret = _str_to_py(s)
|
||||
lib.eina_stringshare_del(c_void_p(s))
|
||||
return ret
|
||||
|
|
|
@ -525,9 +525,9 @@ lib.eolian_typedecl_enum_fields_get.restype = c_void_p
|
|||
lib.eolian_typedecl_enum_field_get.argtypes = (c_void_p, c_char_p)
|
||||
lib.eolian_typedecl_enum_field_get.restype = c_void_p
|
||||
|
||||
# EAPI Eina_Stringshare *eolian_typedecl_enum_field_c_name_get(const Eolian_Enum_Type_Field *fl);
|
||||
lib.eolian_typedecl_enum_field_c_name_get.argtypes = (c_void_p,)
|
||||
lib.eolian_typedecl_enum_field_c_name_get.restype = c_void_p # Stringshare TO BE FREED
|
||||
# EAPI Eina_Stringshare *eolian_typedecl_enum_field_c_constant_get(const Eolian_Enum_Type_Field *fl);
|
||||
lib.eolian_typedecl_enum_field_c_constant_get.argtypes = (c_void_p,)
|
||||
lib.eolian_typedecl_enum_field_c_constant_get.restype = c_void_p # Stringshare TO BE FREED
|
||||
|
||||
# EAPI const Eolian_Documentation *eolian_typedecl_enum_field_documentation_get(const Eolian_Enum_Type_Field *fl);
|
||||
lib.eolian_typedecl_enum_field_documentation_get.argtypes = (c_void_p,)
|
||||
|
|
|
@ -512,7 +512,7 @@ class TestEolianTypedecl(unittest.TestCase):
|
|||
field = td.enum_field_get('v1_0')
|
||||
self.assertIsInstance(field, eolian.Enum_Type_Field)
|
||||
self.assertEqual(field.name, 'v1_0')
|
||||
self.assertEqual(field.c_name, 'EFL_NET_HTTP_VERSION_V1_0')
|
||||
self.assertEqual(field.c_constant, 'EFL_NET_HTTP_VERSION_V1_0')
|
||||
self.assertIsInstance(field.documentation, eolian.Documentation)
|
||||
self.assertIsInstance(field.value, eolian.Expression)
|
||||
|
||||
|
|
|
@ -888,7 +888,7 @@ EFL_START_TEST(eolian_enum)
|
|||
fail_if(v.type != EOLIAN_EXPR_INT);
|
||||
fail_if(v.value.i != 15);
|
||||
|
||||
cname = eolian_typedecl_enum_field_c_name_get(field);
|
||||
cname = eolian_typedecl_enum_field_c_constant_get(field);
|
||||
fail_if(strcmp(cname, "TEST_FOO"));
|
||||
eina_stringshare_del(cname);
|
||||
|
||||
|
@ -915,7 +915,7 @@ EFL_START_TEST(eolian_enum)
|
|||
fail_if(!(tdl = eolian_unit_enum_by_name_get(unit, "Name.Spaced")));
|
||||
fail_if(!(field = eolian_typedecl_enum_field_get(tdl, "pants")));
|
||||
|
||||
cname = eolian_typedecl_enum_field_c_name_get(field);
|
||||
cname = eolian_typedecl_enum_field_c_constant_get(field);
|
||||
fail_if(strcmp(cname, "NAME_SPACED_PANTS"));
|
||||
eina_stringshare_del(cname);
|
||||
|
||||
|
|
Loading…
Reference in New Issue