removed ;;; -+ lines
[cl-graph.git] / dev / graph-iterators.lisp
1
2 ;;; vertex-iterator
3
4 (u:defclass* vertex-iterator (containers::forward-iterator)
5   ())
6
7
8 (defmethod initialize-instance :after ((object vertex-iterator) &key)
9   (reset object))
10
11
12 (defmethod reset ((iterator vertex-iterator))
13   (let ((vertex (containers::initial-container iterator)))
14     (setf (slot-value iterator 'containers::iterating-container) 
15           (make-iterator (edges vertex)
16                          :transform (lambda (e) (other-vertex e vertex)))))
17   iterator)
18
19
20 (defmethod containers::base-class-for-iteratee ((container basic-vertex))
21   'vertex-iterator)
22
23
24 (defmethod containers::base-class-for-iteratee ((container basic-vertex))
25   (containers::base-class-for-iteratee (vertex-edges container)))
26
27 (u:add-parameter->dynamic-class :iterator :children nil )
28
29 (collect-elements