#ifndef EFL_UI_VIEW_LIST_SEGARRAY_IMPL_HH
#define EFL_UI_VIEW_LIST_SEGARRAY_IMPL_HH

#include "efl_ui_view_list_segarray.eo.hh"

namespace efl { namespace ui { 
inline ::efl::eolian::return_traits< ::efl::eina::accessor<Efl_Ui_View_List_LayoutItem const&>>::type View_List_SegArray::accessor_get() const
{
   Eina_Accessor * __return_value =  ::efl_ui_view_list_segarray_accessor_get(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::accessor<Efl_Ui_View_List_LayoutItem const&>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::eina::accessor<Efl_Ui_View_List_SegArray_Node const&>>::type View_List_SegArray::node_accessor_get() const
{
   Eina_Accessor * __return_value =  ::efl_ui_view_list_segarray_node_accessor_get(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::accessor<Efl_Ui_View_List_SegArray_Node const&>>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type View_List_SegArray::insert_value( ::efl::eolian::in_traits<int>::type first,  ::efl::eolian::in_traits< ::efl::eina::value_view>::type v) const
{
    ::efl_ui_view_list_segarray_insert_value(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(first)
      ,  ::efl::eolian::convert_to_c<Eina_Value,  ::efl::eolian::in_traits< ::efl::eina::value_view>::type>(v));
}
inline ::efl::eolian::return_traits<int>::type View_List_SegArray::count() const
{
   int __return_value =  ::efl_ui_view_list_segarray_count(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<int>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type View_List_SegArray::setup( ::efl::eolian::in_traits<int>::type initial_step_size) const
{
    ::efl_ui_view_list_segarray_setup(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(initial_step_size));
}
inline ::efl::eolian::return_traits<void>::type View_List_SegArray::flush() const
{
    ::efl_ui_view_list_segarray_flush(_eo_ptr());
}
inline ::efl::eolian::return_traits<void>::type View_List_SegArray::insert( ::efl::eolian::in_traits<int>::type index,  ::efl::eolian::in_traits< ::efl::Model>::type model) const
{
    ::efl_ui_view_list_segarray_insert(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index)
      ,  ::efl::eolian::convert_to_c< ::Efl_Model*,  ::efl::eolian::in_traits< ::efl::Model>::type>(model));
}
inline ::efl::eolian::return_traits< ::std::unique_ptr<Efl_Ui_View_List_LayoutItem, ::efl::eina::malloc_deleter>>::type View_List_SegArray::remove( ::efl::eolian::in_traits<int>::type index) const
{
   Efl_Ui_View_List_LayoutItem * __return_value =  ::efl_ui_view_list_segarray_remove(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::std::unique_ptr<Efl_Ui_View_List_LayoutItem, ::efl::eina::malloc_deleter>>::type>(__return_value);
}
} } 
namespace eo_cxx {
namespace efl { namespace ui { 
inline ::efl::eolian::return_traits< ::efl::eina::accessor<Efl_Ui_View_List_LayoutItem const&>>::type View_List_SegArray::accessor_get() const
{
   Eina_Accessor * __return_value =  ::efl_ui_view_list_segarray_accessor_get(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::accessor<Efl_Ui_View_List_LayoutItem const&>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::eina::accessor<Efl_Ui_View_List_SegArray_Node const&>>::type View_List_SegArray::node_accessor_get() const
{
   Eina_Accessor * __return_value =  ::efl_ui_view_list_segarray_node_accessor_get(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::accessor<Efl_Ui_View_List_SegArray_Node const&>>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type View_List_SegArray::insert_value( ::efl::eolian::in_traits<int>::type first,  ::efl::eolian::in_traits< ::efl::eina::value_view>::type v) const
{
    ::efl_ui_view_list_segarray_insert_value(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(first)
      ,  ::efl::eolian::convert_to_c<Eina_Value,  ::efl::eolian::in_traits< ::efl::eina::value_view>::type>(v));
}
inline ::efl::eolian::return_traits<int>::type View_List_SegArray::count() const
{
   int __return_value =  ::efl_ui_view_list_segarray_count(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<int>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type View_List_SegArray::setup( ::efl::eolian::in_traits<int>::type initial_step_size) const
{
    ::efl_ui_view_list_segarray_setup(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(initial_step_size));
}
inline ::efl::eolian::return_traits<void>::type View_List_SegArray::flush() const
{
    ::efl_ui_view_list_segarray_flush(_eo_ptr());
}
inline ::efl::eolian::return_traits<void>::type View_List_SegArray::insert( ::efl::eolian::in_traits<int>::type index,  ::efl::eolian::in_traits< ::efl::Model>::type model) const
{
    ::efl_ui_view_list_segarray_insert(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index)
      ,  ::efl::eolian::convert_to_c< ::Efl_Model*,  ::efl::eolian::in_traits< ::efl::Model>::type>(model));
}
inline ::efl::eolian::return_traits< ::std::unique_ptr<Efl_Ui_View_List_LayoutItem, ::efl::eina::malloc_deleter>>::type View_List_SegArray::remove( ::efl::eolian::in_traits<int>::type index) const
{
   Efl_Ui_View_List_LayoutItem * __return_value =  ::efl_ui_view_list_segarray_remove(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::std::unique_ptr<Efl_Ui_View_List_LayoutItem, ::efl::eina::malloc_deleter>>::type>(__return_value);
}
inline efl::ui::View_List_SegArray::operator ::efl::ui::View_List_SegArray() const { return *static_cast< ::efl::ui::View_List_SegArray const*>(static_cast<void const*>(this)); }
inline efl::ui::View_List_SegArray::operator ::efl::ui::View_List_SegArray&() { return *static_cast< ::efl::ui::View_List_SegArray*>(static_cast<void*>(this)); }
inline efl::ui::View_List_SegArray::operator ::efl::ui::View_List_SegArray const&() const { return *static_cast< ::efl::ui::View_List_SegArray const*>(static_cast<void const*>(this)); }
} } }
#endif
