io.github.memo33.metarules.meta

Contains internal MetaRUL implementation (mostly); changes in this package should not usually be necessary; for the code generating mechanism, Syntax#IdResolver and Syntax#RuleGenerator need to be implemented.

Attributes

Members list

Type members

Classlikes

case object Asymmetrical extends NetworkType

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class NetworkType
class Object
trait Matchable
class Any
Show all
Self type
case object AvenueLike extends NetworkType

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class NetworkType
class Object
trait Matchable
class Any
Show all
Self type
AvenueLike.type
final class EquivRule(val rule: Rule[IdTile])

A wrapper for Rules of IdTiles that respects the proper equivalence relation of override rules in its equals and hashCode implementation. That means two override rules are equivalent if they can be rotated and mirrored such that they match, according to the following pattern: A,0,0,B,0,0 A,2,1,B,2,1 B,2,0,A,2,0 B,0,1,A,0,1

A wrapper for Rules of IdTiles that respects the proper equivalence relation of override rules in its equals and hashCode implementation. That means two override rules are equivalent if they can be rotated and mirrored such that they match, according to the following pattern: A,0,0,B,0,0 A,2,1,B,2,1 B,2,0,A,2,0 B,0,1,A,0,1

Attributes

Supertypes
class Object
trait Matchable
class Any
object Flag

Network flags subject to the following conventions:

Network flags subject to the following conventions:

  • flags ending in 1 or 3 are swapped when flipped (useful for curves),
  • flags for symmetrical networks are non-negative,
  • flags for asymmetrical networks can be negative; they represent a direction of travel (from negative to positive) and they change sign when flipped or reversed.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Flag.type
class Flags extends IndexedSeq[Int]

An implementation of IndexedSeq[Int] that is limited to length 4.

An implementation of IndexedSeq[Int] that is limited to length 4.

Attributes

Companion
object
Supertypes
trait IndexedSeq[Int]
trait IndexedSeqOps[Int, IndexedSeq, IndexedSeq[Int]]
trait IndexedSeq[Int]
trait IndexedSeqOps[Int, IndexedSeq, IndexedSeq[Int]]
trait Seq[Int]
trait SeqOps[Int, IndexedSeq, IndexedSeq[Int]]
trait Seq[Int]
trait Equals
trait SeqOps[Int, IndexedSeq, IndexedSeq[Int]]
trait PartialFunction[Int, Int]
trait Int => Int
trait Iterable[Int]
trait Iterable[Int]
trait IterableFactoryDefaults[Int, IndexedSeq]
trait IterableOps[Int, IndexedSeq, IndexedSeq[Int]]
trait IterableOnceOps[Int, IndexedSeq, IndexedSeq[Int]]
trait IterableOnce[Int]
class Object
trait Matchable
class Any
Show all
object Flags

Defines a few common Int tuples for use as Flags.

Defines a few common Int tuples for use as Flags.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Flags.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Syntax
object DummyNetwork
Self type
sealed abstract class NetworkType

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Asymmetrical
object AvenueLike
object Symmetrical
class RotFlip extends Val

The eight rotations of a tile, e.g. in an override rule.

The eight rotations of a tile, e.g. in an override rule.

Attributes

Companion
object
Supertypes
class Val
trait Serializable
trait Ordered[Value]
trait Comparable[Value]
class Object
trait Matchable
class Any
Show all
object RotFlip extends Enum

The eight rotations of a tile, e.g. in an override rule.

The eight rotations of a tile, e.g. in an override rule.

Attributes

Companion
class
Supertypes
class Enum
trait Serializable
class Object
trait Matchable
class Any
Self type
RotFlip.type
class Rule[+A <: TileLike]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object Rule

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Rule.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Syntax
object DummyNetwork
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Syntax
object DummyNetwork
Self type
case object Symmetrical extends NetworkType

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class NetworkType
class Object
trait Matchable
class Any
Show all
Self type

The content of this file makes the MetaRUL DSL syntax work. Changes in here are unlikely to be necessary.

The content of this file makes the MetaRUL DSL syntax work. Changes in here are unlikely to be necessary.

The Network type should be provided by dependency injection by extending from Syntax downstream.

Attributes

Supertypes
class Object
trait Matchable
class Any
Show all
Known subtypes
object DummyNetwork

Types

type IdTile = IdTile

Implicits

Implicits

implicit def metaRFToScdbpfRF(rf: RotFlip): RotFlip
implicit def scdbpfRFToMetaRF(rf: RotFlip): RotFlip