2 ;;; ---------------------------------------------------------------------------
4 ;;; ---------------------------------------------------------------------------
6 (u:defclass* vertex-iterator (containers::forward-iterator)
9 ;;; ---------------------------------------------------------------------------
11 (defmethod initialize-instance :after ((object vertex-iterator) &key)
14 ;;; ---------------------------------------------------------------------------
16 (defmethod reset ((iterator vertex-iterator))
17 (let ((vertex (containers::initial-container iterator)))
18 (setf (slot-value iterator 'containers::iterating-container)
19 (make-iterator (edges vertex)
20 :transform (lambda (e) (other-vertex e vertex)))))
23 ;;; ---------------------------------------------------------------------------
25 (defmethod containers::base-class-for-iteratee ((container basic-vertex))
28 ;;; ---------------------------------------------------------------------------
30 (defmethod containers::base-class-for-iteratee ((container basic-vertex))
31 (containers::base-class-for-iteratee (vertex-edges container)))
33 (u:add-parameter->dynamic-class :iterator :children nil )