! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors assocs deques dlists kernel spider ;
+USING: accessors assocs deques dlists kernel ;
IN: spider.unique-deque
TUPLE: todo-url url depth ;
: pop-url ( unique-deque -- todo-url ) deque>> pop-front ;
: peek-url ( unique-deque -- todo-url ) deque>> peek-front ;
+
+:: slurp-deque-when ( deque quot1: ( value -- ) quot2: ( value -- ) -- )
+ deque deque-empty? [
+ deque pop-front dup quot1 call
+ [ quot2 call t ] [ drop f ] if
+ [ deque quot1 quot2 slurp-deque-when ] when
+ ] unless ; inline recursive