GrowOnlyList

kofre.datatypes.GrowOnlyList
See theGrowOnlyList companion object
case class GrowOnlyList[E](innerContents: Repr[E])

A GrowOnlyList is a Delta CRDT modeling a grow-only list where list elements can neither be removed nor modified.

Concurrent inserts at the same index i are resolved by the timestamps of the insert operations: the later insert will be at index i while the earlier insert will be pushed to index i+1.

Note: GrowOnlyList is implemented as a linked list, thus the time needed to execute operations at the end of the list will scale linearly with the length of the list. Similarly, toList always has to iterate the whole list, so for applications that don't always need the whole list you should consider using toLazyList instead.

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product

Exports

Defined exports

override def +[V1 >: V](kv: (K, V1)): CC[K, V1]
Exported from MapOps
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]
Exported from IterableOps
def ++[V2 >: V](xs: IterableOnce[(K, V2)]): CC[K, V2]
Exported from MapOps
val addString: StringBuilder
Exported from addString
val addString: StringBuilder
Exported from addString
val addString: StringBuilder
Exported from addString
def andThen[C](k: PartialFunction[B, C]): PartialFunction[A, C]
Exported from PartialFunction
override def andThen[C](k: B => C): PartialFunction[A, C]
Exported from PartialFunction
override def applyOrElse[K1 <: K, V1 >: V](x: K1, default: K1 => V1): V1
Exported from MapOps
def collect[B](pf: PartialFunction[A, B]): CC[B]
Exported from IterableOps
def collect[K2, V2](pf: PartialFunction[(K, V), (K2, V2)]): CC[K2, V2]
Exported from MapOps
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]
Exported from IterableOnceOps
def compose[R](k: PartialFunction[R, A]): PartialFunction[R, B]
Exported from PartialFunction
def compose[A](g: A => T1): A => R
Exported from Function1
def concat[B >: A](suffix: IterableOnce[B]): CC[B]
Exported from IterableOps
def concat[V2 >: V](suffix: IterableOnce[(K, V2)]): CC[K, V2]
Exported from MapOps
def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Int
Exported from IterableOnceOps
def copyToArray[B >: A](xs: Array[B], start: Int): Int
Exported from IterableOnceOps
def copyToArray[B >: A](xs: Array[B]): Int
Exported from IterableOnceOps
def elementWise: ElementWiseExtractor[A, B]
Exported from PartialFunction
override def empty: CC[K, V]
Exported from MapFactoryDefaults
def flatMap[B](f: A => IterableOnce[B]): CC[B]
Exported from IterableOps
def flatMap[K2, V2](f: ((K, V)) => IterableOnce[(K2, V2)]): CC[K2, V2]
Exported from MapOps
def flatten[B](implicit asIterable: A => IterableOnce[B]): CC[B]
Exported from IterableOps
def foreach[U](f: A => U): Unit
Exported from IterableOnceOps
def foreachEntry[U](f: (K, V) => U): Unit
Exported from MapOps
def getOrElse[V1 >: V](key: K, default: => V1): V1
Exported from MapOps
def groupBy[K](f: A => K): Map[K, C]
Exported from IterableOps
def head: A
Exported from IterableOps
def headOption: Option[A]
Exported from IterableOps
def init: C
Exported from IterableOps
def inits: Iterator[C]
Exported from IterableOps
def isEmpty: Boolean
Exported from IterableOnceOps
override def isTraversableAgain: Boolean
Exported from IterableOps
override def iterableFactory: IterableFactory[Iterable]
Exported from Iterable
def iterator: Iterator[A]
Exported from IterableOnce
override def keySet: Set[K]
Exported from MapOps
def keyStepper[S <: Stepper[_]](implicit shape: StepperShape[K, S]): S
Exported from MapOps
def keys: Iterable[K]
Exported from MapOps
def keysIterator: Iterator[K]
Exported from MapOps
def knownSize: Int
Exported from IterableOnce
def last: A
Exported from IterableOps
def lastOption: Option[A]
Exported from IterableOps
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Iterable]
Exported from Iterable
def lift: A => Option[B]
Exported from PartialFunction
def map[B](f: A => B): CC[B]
Exported from IterableOps
def map[K2, V2](f: ((K, V)) => (K2, V2)): CC[K2, V2]
Exported from MapOps
override def mapFactory: MapFactory[Map]
Exported from Map
def max[B >: A](implicit ord: Ordering[B]): A
Exported from IterableOnceOps
def maxOption[B >: A](implicit ord: Ordering[B]): Option[A]
Exported from IterableOnceOps
def min[B >: A](implicit ord: Ordering[B]): A
Exported from IterableOnceOps
def minOption[B >: A](implicit ord: Ordering[B]): Option[A]
Exported from IterableOnceOps
final def mkString: String
Exported from IterableOnceOps
def nonEmpty: Boolean
Exported from IterableOnceOps
def orElse[A1 <: A, B1 >: B](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]
Exported from PartialFunction
def partitionMap[A1, A2](f: A => Either[A1, A2]): (CC[A1], CC[A2])
Exported from IterableOps
def product[B >: A](implicit num: Numeric[B]): B
Exported from IterableOnceOps
def reduce[B >: A](op: (B, B) => B): B
Exported from IterableOnceOps
def reduceLeft[B >: A](op: (B, A) => B): B
Exported from IterableOnceOps
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]
Exported from IterableOnceOps
def reduceOption[B >: A](op: (B, B) => B): Option[B]
Exported from IterableOnceOps
def reduceRight[B >: A](op: (A, B) => B): B
Exported from IterableOnceOps
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]
Exported from IterableOnceOps
def runWith[U](action: B => U): A => Boolean
Exported from PartialFunction
def size: Int
Exported from IterableOnceOps
final def sizeIs: SizeCompareOps
Exported from IterableOps
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S
Exported from IterableOnce
def sum[B >: A](implicit num: Numeric[B]): B
Exported from IterableOnceOps
def tail: C
Exported from IterableOps
def tails: Iterator[C]
Exported from IterableOps
override def tapEach[U](f: A => U): C
Exported from IterableOps
def to[C1](factory: Factory[A, C1]): C1
Exported from IterableOnceOps
def toArray[B >: A : ClassTag]: Array[B]
Exported from IterableOnceOps
final def toBuffer[B >: A]: Buffer[B]
Exported from IterableOnceOps
def toIndexedSeq: IndexedSeq[A]
Exported from IterableOnceOps
def toList: List[A]
Exported from IterableOnceOps
final override def toMap[K2, V2](implicit ev: (K, V) <:< (K2, V2)): Map[K2, V2]
Exported from Map
def toSeq: Seq[A]
Exported from IterableOnceOps
def toSet[B >: A]: Set[B]
Exported from IterableOnceOps
def toVector: Vector[A]
Exported from IterableOnceOps
def transform[W](f: (K, V) => W): CC[K, W]
Exported from MapOps
def transpose[B](implicit asIterable: A => Iterable[B]): CC[CC[B]]
Exported from IterableOps
def unzip[A1, A2](implicit asPair: A => (A1, A2)): (CC[A1], CC[A2])
Exported from IterableOps
def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])
Exported from IterableOps
def updated[V1 >: V](key: K, value: V1): CC[K, V1]
Exported from MapOps
def valueStepper[S <: Stepper[_]](implicit shape: StepperShape[V, S]): S
Exported from MapOps
def values: Iterable[V]
Exported from MapOps
def valuesIterator: Iterator[V]
Exported from MapOps
override def view: MapView[K, V]
Exported from MapOps
def withDefault[V1 >: V](d: K => V1): Map[K, V1]
Exported from Map
def withDefaultValue[V1 >: V](d: V1): Map[K, V1]
Exported from Map
def zip[B](that: IterableOnce[B]): CC[(A, B)]
Exported from IterableOps
def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]
Exported from IterableOps
def zipWithIndex: CC[(A, Int)]
Exported from IterableOps

Deprecated defined exports

def +[V1 >: V](elem1: (K, V1), elem2: (K, V1), elems: (K, V1)*): CC[K, V1]
Exported from MapOps

Attributes

Deprecated
[Since version 2.13.0] Use ++ with an explicit collection argument instead of + with varargs
def ++:[B >: A](that: IterableOnce[B]): CC[B]
Exported from IterableOps

Attributes

Deprecated
[Since version 2.13.0] Use ++ instead of ++: for collections of type Iterable
def ++:[V1 >: V](that: IterableOnce[(K, V1)]): CC[K, V1]
Exported from MapOps

Attributes

Deprecated
[Since version 2.13.0] Use ++ instead of ++: for collections of type Iterable
def companion: IterableFactory[CC]
Exported from IterableOps

Attributes

Deprecated
[Since version 2.13.0] Use iterableFactory instead
final def copyToBuffer[B >: A](dest: Buffer[B]): Unit
Exported from IterableOnceOps

Attributes

Deprecated
[Since version 2.13.0] Use `dest ++= coll` instead
def hasDefiniteSize: Boolean
Exported from IterableOnceOps

Attributes

Deprecated
[Since version 2.13.0] Check .knownSize instead of .hasDefiniteSize for more actionable information (see scaladoc for details)
def mapValues[W](f: V => W): MapView[K, W]
Exported from MapOps

Attributes

Deprecated
[Since version 2.13.0] Use .view.mapValues(f). A future version will include a strict version of this method (for now, .view.mapValues(f).toMap).
final def repr: C
Exported from IterableOps

Attributes

Deprecated
[Since version 2.13.0] Use coll instead of repr in a collection implementation, use the collection value itself from the outside
def seq: Iterable.this.type
Exported from Iterable

Attributes

Deprecated
[Since version 2.13.0] Iterable.seq always returns the iterable itself
final def toIterable: Iterable.this.type
Exported from Iterable

Attributes

Deprecated
[Since version 2.13.7] toIterable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections
final def toIterator: Iterator[A]
Exported from IterableOnceOps

Attributes

Deprecated
[Since version 2.13.0] Use .iterator instead of .toIterator
final def toStream: Stream[A]
Exported from IterableOnceOps

Attributes

Deprecated
[Since version 2.13.0] Use .to(LazyList) instead of .toStream
final def toTraversable: Iterable[A]
Exported from IterableOps

Attributes

Deprecated
[Since version 2.13.0] toTraversable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections