Improved traversers

Added abstract class QueueBasedTraverser holds general logic for most
traversers.
Fixed errors in InfoKeepers.
Added InfoKeeper that uses IntToBoolean fastutil map to store Boolean
values.
Changed BreadthFirstTraverser so that first node is the node we start
traverse from (to be consistent with other traversals).
If it is stateless, you only need to mixin once and use the method I suggested for both types of limits 
On Aug 4, 2014, at 12:38 PM, Szymon <notifications@github.com> wrote:

> In cassovary-core/src/main/scala/com/twitter/cassovary/graph/Traverser.scala:
> 
> >  
> > -  protected def init(defaultInfo: T) {
> > -    homeNodeIds foreach { id => visitPotentialNode(id, defaultInfo, 0) }
> > +trait DegreeLimit {
> > +  val maxNumEdgesThreshold: Option[Int]
> > +  def degreeToHigh(degree: Int): Boolean = {
> That's true. But in this case I cannot mixin both of them at the same time, don't I?
> 
> —
> Reply to this email directly or view it on GitHub.
>