00001 /* vim: set sw=8 ts=8 sts=8 expandtab: */ 00002 #ifndef CMAID_ITER_FUNCDEF_H 00003 #define CMAID_ITER_FUNCDEF_H 00004 00010 #define CMAID_ITER_FUNC(it) ((it)->interface) 00011 00021 CMAID_INLINE void 00022 cmaid_iter_start(Cmaid_Iter *it) 00023 { 00024 CMAID_ITER_FUNC(it)->start(it); 00025 } 00026 00036 CMAID_INLINE void * 00037 cmaid_iter_iter_goto(Cmaid_Iter *it, const Cmaid_Iter *to_it) 00038 { 00039 return CMAID_ITER_FUNC(it)->iter_goto(it, to_it); 00040 } 00041 00047 CMAID_INLINE void * 00048 cmaid_iter_index_goto(Cmaid_Iter *it, int index) 00049 { 00050 return CMAID_ITER_FUNC(it)->index_goto(it, index); 00051 } 00052 00060 CMAID_INLINE int 00061 cmaid_iter_index_get(Cmaid_Iter *it) 00062 { 00063 return it->index; 00064 } 00065 00073 CMAID_INLINE Cmaid_Container * 00074 cmaid_iter_container_get(Cmaid_Iter *it) 00075 { 00076 return it->container; 00077 } 00078 00089 CMAID_INLINE void * 00090 cmaid_iter_current(Cmaid_Iter *it) 00091 { 00092 return CMAID_ITER_FUNC(it)->current(it); 00093 } 00094 00106 CMAID_INLINE void * 00107 cmaid_iter_next(Cmaid_Iter *it) 00108 { 00109 return CMAID_ITER_FUNC(it)->next(it); 00110 } 00111 00123 CMAID_INLINE void * 00124 cmaid_iter_previous(Cmaid_Iter *it) 00125 { 00126 return CMAID_ITER_FUNC(it)->previous(it); 00127 } 00128 00138 CMAID_INLINE void 00139 cmaid_iter_remove(Cmaid_Iter *it) 00140 { 00141 CMAID_ITER_FUNC(it)->remove(it); 00142 } 00143 00144 #endif /* CMAID_ITER_FUNCDEF_H */
1.5.8