Trait/Object

com.stripe.brushfire

Reorder

Related Docs: object Reorder | package brushfire

Permalink

trait Reorder[A] extends AnyRef

Simple data type that provides rules to order nodes during traversal.

In some cases subtypes of Reorder will also wraps RNG state, for instances that need to randomly select instances. Thus, Reorder is not guaranteed to be referentially-transparent. Fresh instances should be used with each traversal.

Reorder will also continue to recurse into a given structure using a provided callback method.

The reason that the node type is provided to apply (instead of Reorder) has to do with how generic trees are specified. Since TreeOps uses path-dependent types to specify node types, the current design is a bit of a kludge that makes it easy to get the types right when handling a Reorder instance to a TreeTraversal instance (which is parameterized on a generic tree type).

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Reorder
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def apply[N, S](n1: N, n2: N, f: (N) ⇒ A, g: (N, N) ⇒ S): S

    Permalink

    Perform a reordering.

    Perform a reordering.

    This method takes two nodes (n1 and n2), as well as two functions:

    • f: function from node to identifying annotation
    • g: function from two nodes to a combined result

    The f function is used in cases where sorting or weighting is necessary (in those cases A will be a weight or similar). The g function is used to recurse on the result -- i.e. the possibly reordered nodes n1 and n2 will be passed to g after the reordering occurs.

  2. abstract def setSeed(seed: Option[String]): Reorder[A]

    Permalink

    Seed a reorder instance with a stable identifier.

    Seed a reorder instance with a stable identifier.

    This ensures that reorders which are non-deterministic in general (e.g. shuffled) will produce the same reordering for the same seed across many traversals.

    On deterministic reorders this method is a noop.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  16. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped