Class/Object

quasar.qscript.qsu

QSUGraph

Related Docs: object QSUGraph | package qsu

Permalink

final case class QSUGraph[T[_[_]]](root: slamdata.Predef.Symbol, vertices: QSUVerts[T]) extends Product with Serializable

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. QSUGraph
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new QSUGraph(root: slamdata.Predef.Symbol, vertices: QSUVerts[T])

    Permalink

Value Members

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  3. def ++:(left: QSUGraph[T]): QSUGraph[T]

    Permalink

    Uniquely merge the graphs, retaining the root from the right.

  4. def :++(right: QSUGraph[T]): QSUGraph[T]

    Permalink

    Uniquely merge the graphs, retaining the root from the left.

  5. final def ==(arg0: Any): Boolean

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

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

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

    Permalink
    Definition Classes
    AnyRef
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. def foldMapUp[A](f: (QSUGraph[T]) ⇒ A)(implicit arg0: Monoid[A]): A

    Permalink
  11. def foldMapUpM[F[_], A](f: (QSUGraph[T]) ⇒ F[A])(implicit arg0: Monad[F], arg1: Monoid[A]): F[A]

    Permalink

    A bottom up (leaves first) monoidal fold of the graph.

  12. def generateRevIndex: RevIdx[T]

    Permalink

    Note that because this is using SMap, we cannot guarantee uniqueness is handled correctly if nodes include Free.

    Note that because this is using SMap, we cannot guarantee uniqueness is handled correctly if nodes include Free. Make sure you do not rely on this. Also please note that this function is linear in the number of nodes, so try not to call it too often.

  13. final def getClass(): Class[_]

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  18. def overwriteAtRoot(qsu: QScriptUniform[T, slamdata.Predef.Symbol]): QSUGraph[T]

    Permalink
  19. def refocus(node: slamdata.Predef.Symbol): QSUGraph[T]

    Permalink
  20. def replace(src: slamdata.Predef.Symbol, target: slamdata.Predef.Symbol): QSUGraph[T]

    Permalink

    Removes the src vertex, replacing any references to it with target.

  21. def rewrite(pf: slamdata.Predef.PartialFunction[QSUGraph[T], QSUGraph[T]]): QSUGraph[T]

    Permalink
  22. def rewriteM[F[_]](pf: slamdata.Predef.PartialFunction[QSUGraph[T], F[QSUGraph[T]]])(implicit arg0: Monad[F]): F[QSUGraph[T]]

    Permalink

    Allows rewriting of arbitrary subgraphs.

    Allows rewriting of arbitrary subgraphs. Rewrites are applied in a bottom-up (leaves-first) order, which avoids ambiguities when changing nodes that are visible to subsequent rewrites. The one caveat here is that all "changes" to the graph must be additive in nature. You can never remove a node. Rewrites to the definition of a node are valid, but you cannot remove it from the graph, as other nodes will still point to it. This becomes relevant if you want to transform some subgraph g into f(g). When this happens, you must internally generate a new symbol for g and rewrite your subgraph to point to that new g, then the composite graph f(g) must be given the original symbol. As a safety check, because this case is just entirely unsound, the symbol you return at the root is entirely ignored in favor of the original root at that locus.

  23. val root: slamdata.Predef.Symbol

    Permalink
  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  25. def unfold: QScriptUniform[T, QSUGraph[T]]

    Permalink
  26. val vertices: QSUVerts[T]

    Permalink
  27. final def wait(): Unit

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

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

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

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped