namespace efl { 
inline ::efl::eolian::return_traits<  ::efl::eina::range_array< ::efl::eina::string_view>>::type Model::properties_get() const
{
   const Eina_Array * __return_value =  ::efl_model_properties_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<  ::efl::eina::range_array< ::efl::eina::string_view>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::eina::future< ::efl::eina::value_view>>::type Model::property_get( ::efl::eolian::in_traits< ::efl::eina::string_view>::type property) const
{
   Eina_Promise * __return_value =  ::efl_model_property_get(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(property));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::future< ::efl::eina::value_view>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::eina::future< ::efl::eina::accessor< ::eo::Base>>>::type Model::children_slice_get( ::efl::eolian::in_traits< unsigned int>::type start,  ::efl::eolian::in_traits< unsigned int>::type count) const
{
   Eina_Promise * __return_value =  ::efl_model_children_slice_get(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(start)
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(count));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::future< ::efl::eina::accessor< ::eo::Base>>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::eina::future< unsigned int>>::type Model::children_count_get() const
{
   Eina_Promise * __return_value =  ::efl_model_children_count_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::future< unsigned int>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::eo::Base>::type Model::child_add() const
{
    ::Eo_Base* __return_value =  ::efl_model_child_add(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::eo::Base>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Model::child_del( ::efl::eolian::in_traits< ::eo::Base>::type child) const
{
    ::efl_model_child_del(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Eo_Base*,  ::efl::eolian::in_traits< ::eo::Base>::type>(child));
}
} 
namespace eo_cxx {
namespace efl { 
inline ::efl::eolian::return_traits<  ::efl::eina::range_array< ::efl::eina::string_view>>::type Model::properties_get() const
{
   const Eina_Array * __return_value =  ::efl_model_properties_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<  ::efl::eina::range_array< ::efl::eina::string_view>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::eina::future< ::efl::eina::value_view>>::type Model::property_get( ::efl::eolian::in_traits< ::efl::eina::string_view>::type property) const
{
   Eina_Promise * __return_value =  ::efl_model_property_get(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(property));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::future< ::efl::eina::value_view>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::eina::future< ::efl::eina::accessor< ::eo::Base>>>::type Model::children_slice_get( ::efl::eolian::in_traits< unsigned int>::type start,  ::efl::eolian::in_traits< unsigned int>::type count) const
{
   Eina_Promise * __return_value =  ::efl_model_children_slice_get(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(start)
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(count));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::future< ::efl::eina::accessor< ::eo::Base>>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::eina::future< unsigned int>>::type Model::children_count_get() const
{
   Eina_Promise * __return_value =  ::efl_model_children_count_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::future< unsigned int>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::eo::Base>::type Model::child_add() const
{
    ::Eo_Base* __return_value =  ::efl_model_child_add(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::eo::Base>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Model::child_del( ::efl::eolian::in_traits< ::eo::Base>::type child) const
{
    ::efl_model_child_del(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Eo_Base*,  ::efl::eolian::in_traits< ::eo::Base>::type>(child));
}
inline efl::Model::operator ::efl::Model() const { return *static_cast< ::efl::Model const*>(static_cast<void const*>(this)); }
inline efl::Model::operator ::efl::Model&() { return *static_cast< ::efl::Model*>(static_cast<void*>(this)); }
inline efl::Model::operator ::efl::Model const&() const { return *static_cast< ::efl::Model const*>(static_cast<void const*>(this)); }
} }

