object Reusability extends ReusabilityMacros with ScalaVersionSpecificReusability
- Alphabetic
- By Inheritance
- Reusability
- ScalaVersionSpecificReusability
- ReusabilityMacros
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final case class ShouldComponentUpdateResult[P, S, B](self: ShouldComponentUpdate[P, S, B])(implicit evidence$266: Reusability[P], evidence$267: Reusability[S]) extends Product with Serializable
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def always[A]: Reusability[A]
- def apply[A](f: (A, A) => Boolean): Reusability[A]
- Annotations
- @inline()
- implicit def arraySeq[A](implicit arg0: Reusability[A]): Reusability[ArraySeq[A]]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- implicit def bigInt: Reusability[BigInt]
- Annotations
- @inline()
- implicit def bigInteger: Reusability[BigInteger]
- Annotations
- @inline()
- implicit def boolean: Reusability[Boolean]
- Annotations
- @inline()
- implicit def box[A](implicit arg0: Reusability[A]): Reusability[Box[A]]
- def by[A, B](f: (A) => B)(implicit r: Reusability[B]): Reusability[A]
- def byIterator[I[X] <: Iterable[X], A](implicit arg0: Reusability[A]): Reusability[I[A]]
- def byJavaDuration[A](dur: (A, A) => Duration, tolerance: Duration): Reusability[A]
- def byRef[A <: AnyRef]: Reusability[A]
Compare by reference.
Compare by reference. Reuse if both values are the same instance.
- def byRefOr_==[A <: AnyRef]: Reusability[A]
Compare by reference and if different, compare using universal equality (Scala's == operator).
- def byScalaDuration[A](dur: (A, A) => Duration, tolerance: Duration): Reusability[A]
- def by_==[A]: Reusability[A]
Compare using universal equality (Scala's == operator).
- implicit def byte: Reusability[Byte]
- Annotations
- @inline()
- macro def caseClassExcept[A](field1: String, fieldN: String*): Reusability[A]
Generate an instance for a case class by comparing each case field except those specified.
Generate an instance for a case class by comparing each case field except those specified.
Example:
case class Picture(id: Long, url: String, title: String)
implicit val picReuse = Reusability.caseClassExcept[Picture]("url", "title")
- A
The case class type.
- Definition Classes
- ReusabilityMacros
- macro def caseClassExceptDebug[A](logNonReuse: Boolean, logCode: Boolean)(field1: String, fieldN: String*): Reusability[A]
Same as caseClassExcept but with debugging options.
Same as caseClassExcept but with debugging options.
- logNonReuse
Log to the console when and why non-reusable values are detected
- logCode
Log to generated Scala code to the screen on compilation.
- Definition Classes
- ReusabilityMacros
- macro def caseClassExceptDebug[A](field1: String, fieldN: String*): Reusability[A]
Same as caseClassExcept but with all debugging options enabled.
Same as caseClassExcept but with all debugging options enabled.
- Definition Classes
- ReusabilityMacros
- implicit def char: Reusability[Char]
- Annotations
- @inline()
- implicit def clock: Reusability[Clock]
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def const[A](r: Boolean): Reusability[A]
- implicit def date: Reusability[Date]
- Annotations
- @inline()
- implicit def dayOfWeek: Reusability[DayOfWeek]
- def deadline(tolerance: Duration): Reusability[Deadline]
- macro def derive[A]: Reusability[A]
Generate an instance for A.
Generate an instance for A.
If A is a sealed trait or sealed abstract class, Reusability is determined by sub-class reusability (which will be derived when it doesn't exist).
If A is a case class, Reusability is determined by each field's Reusability.
- Definition Classes
- ReusabilityMacros
- macro def deriveDebug[A](logNonReuse: Boolean, logCode: Boolean): Reusability[A]
Same as derive but with debugging options.
Same as derive but with debugging options.
- logNonReuse
Log to the console when and why non-reusable values are detected
- logCode
Log to generated Scala code to the screen on compilation.
- Definition Classes
- ReusabilityMacros
- macro def deriveDebug[A]: Reusability[A]
Same as derive but with all debugging options enabled.
Same as derive but with all debugging options enabled.
- Definition Classes
- ReusabilityMacros
- final def disableGloballyInDev(): Unit
When you're in dev-mode (i.e.
When you're in dev-mode (i.e.
fastOptJS
), this globally disables Reusability.shouldComponentUpdate.- Definition Classes
- ScalaVersionSpecificReusability
- def double(tolerance: Double): Reusability[Double]
- implicit def either[A, B](implicit arg0: Reusability[A], arg1: Reusability[B]): Reusability[Either[A, B]]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def finiteDuration(tolerance: Duration): Reusability[FiniteDuration]
- def float(tolerance: Float): Reusability[Float]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- implicit def hooksUseRefF[F[_], A]: Reusability[UseRefF[F, A]]
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
- def indexedSeq[S[X] <: IndexedSeq[X], A](implicit arg0: Reusability[A]): Reusability[S[A]]
- def instant(tolerance: Duration): Reusability[Instant]
- implicit def int: Reusability[Int]
- Annotations
- @inline()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def javaBigDecimal(tolerance: BigDecimal): Reusability[BigDecimal]
- def javaBigDecimal(tolerance: Double): Reusability[BigDecimal]
- def javaDuration(tolerance: Duration): Reusability[Duration]
- implicit def jsDate: Reusability[Date]
- implicit def list[A](implicit arg0: Reusability[A]): Reusability[List[A]]
- implicit def localDate: Reusability[LocalDate]
- def localDate(tolerance: Duration): Reusability[LocalDate]
- def localDateTime(tolerance: Duration): Reusability[LocalDateTime]
- implicit def long: Reusability[Long]
- Annotations
- @inline()
- def map[K, V](implicit rv: Reusability[V]): Reusability[Map[K, V]]
This is not implicit because the point of Reusability is to be fast, where as full comparison of all keys and values in a map, is usually not desirable; in some cases it will probably even be faster just rerender and have React determine that nothing has changed.
This is not implicit because the point of Reusability is to be fast, where as full comparison of all keys and values in a map, is usually not desirable; in some cases it will probably even be faster just rerender and have React determine that nothing has changed.
Nonetheless, there are cases where a full comparison is desired and so use this as needed.
Reusability[K]
isn't needed because its existence in the map (and thus universal equality) is all that's necessary. Time is O(|m₁|+|m₂|). - implicit def month: Reusability[Month]
- implicit def monthDay: Reusability[MonthDay]
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def never[A]: Reusability[A]
- implicit def nonEmptyRefFullF[F[_], I, A, O]: Reusability[FullF[F, I, A, O]]
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
Any
map
/contramap
functions installed in the ref are ignored for the sake of reusability. If this is undesirable, pass around a Reusable ref instead. - implicit def nonEmptyRefHandleF[F[_], A]: Reusability[HandleF[F, A]]
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def offsetDateTime(tolerance: Duration): Reusability[OffsetDateTime]
- def offsetTime(tolerance: Duration): Reusability[OffsetTime]
- implicit def option[A](implicit arg0: Reusability[A]): Reusability[Option[A]]
- Annotations
- @inline()
- implicit def optionLike[O[_], A](implicit o: OptionLike[O], r: Reusability[A]): Reusability[O[A]]
- implicit def period: Reusability[Period]
- implicit def range: Reusability[Range]
- implicit def refFullF[F[_], I, A, O]: Reusability[FullF[F, I, A, O]]
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
Any
map
/contramap
functions installed in the ref are ignored for the sake of reusability. If this is undesirable, pass around a Reusable ref instead. - implicit def refHandleF[F[_], A]: Reusability[HandleF[F, A]]
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
- implicit def refRaw[A]: Reusability[RefHandle[A]]
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
- Annotations
- @inline()
- implicit def refToComponentF[F[_], I, R, O, C]: Reusability[ToComponentF[F, I, R, O, C]]
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
Updating a reference doesn't trigger a component re-rendering, nor is the current reference value considered for reusability.
Any
map
/contramap
functions installed in the ref are ignored for the sake of reusability. If this is undesirable, pass around a Reusable ref instead. - def scalaBigDecimal(tolerance: BigDecimal): Reusability[BigDecimal]
- def scalaDuration(tolerance: Duration): Reusability[Duration]
- implicit def set[A]: Reusability[Set[A]]
- implicit lazy val setIntervalHandle: Reusability[SetIntervalHandle]
- implicit lazy val setTimeoutHandle: Reusability[SetTimeoutHandle]
- implicit def short: Reusability[Short]
- Annotations
- @inline()
- final def shouldComponentUpdate[P, C <: Children, S, B, U <: UpdateSnapshot](implicit arg0: Reusability[P], arg1: Reusability[S]): Config[P, C, S, B, U, U]
- Definition Classes
- ScalaVersionSpecificReusability
- Annotations
- @inline()
- def shouldComponentUpdateAnd[G[_], P, C <: Children, S, B, U <: UpdateSnapshot](f: (ShouldComponentUpdateResult[P, S, B]) => G[Unit])(implicit arg0: Reusability[P], arg1: Reusability[S], G: Sync[G]): Config[P, C, S, B, U, U]
- def shouldComponentUpdateAndLog[P, C <: Children, S, B, U <: UpdateSnapshot](name: String)(implicit arg0: Reusability[P], arg1: Reusability[S]): Config[P, C, S, B, U, U]
- implicit def string: Reusability[String]
- Annotations
- @inline()
- def suspend[A](f: => Reusability[A]): Reusability[A]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- implicit def tuple10[A, B, C, D, E, F, G, H, I, J](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J]): Reusability[(A, B, C, D, E, F, G, H, I, J)]
- implicit def tuple11[A, B, C, D, E, F, G, H, I, J, K](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K]): Reusability[(A, B, C, D, E, F, G, H, I, J, K)]
- implicit def tuple12[A, B, C, D, E, F, G, H, I, J, K, L](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L)]
- implicit def tuple13[A, B, C, D, E, F, G, H, I, J, K, L, M](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M)]
- implicit def tuple14[A, B, C, D, E, F, G, H, I, J, K, L, M, N](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N)]
- implicit def tuple15[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N], arg14: Reusability[O]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)]
- implicit def tuple16[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N], arg14: Reusability[O], arg15: Reusability[P]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)]
- implicit def tuple17[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N], arg14: Reusability[O], arg15: Reusability[P], arg16: Reusability[Q]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)]
- implicit def tuple18[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N], arg14: Reusability[O], arg15: Reusability[P], arg16: Reusability[Q], arg17: Reusability[R]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)]
- implicit def tuple19[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N], arg14: Reusability[O], arg15: Reusability[P], arg16: Reusability[Q], arg17: Reusability[R], arg18: Reusability[S]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)]
- implicit def tuple2[A, B](implicit arg0: Reusability[A], arg1: Reusability[B]): Reusability[(A, B)]
- implicit def tuple20[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N], arg14: Reusability[O], arg15: Reusability[P], arg16: Reusability[Q], arg17: Reusability[R], arg18: Reusability[S], arg19: Reusability[T]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)]
- implicit def tuple21[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N], arg14: Reusability[O], arg15: Reusability[P], arg16: Reusability[Q], arg17: Reusability[R], arg18: Reusability[S], arg19: Reusability[T], arg20: Reusability[U]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)]
- implicit def tuple22[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I], arg9: Reusability[J], arg10: Reusability[K], arg11: Reusability[L], arg12: Reusability[M], arg13: Reusability[N], arg14: Reusability[O], arg15: Reusability[P], arg16: Reusability[Q], arg17: Reusability[R], arg18: Reusability[S], arg19: Reusability[T], arg20: Reusability[U], arg21: Reusability[V]): Reusability[(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V)]
- implicit def tuple3[A, B, C](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C]): Reusability[(A, B, C)]
- implicit def tuple4[A, B, C, D](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D]): Reusability[(A, B, C, D)]
- implicit def tuple5[A, B, C, D, E](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E]): Reusability[(A, B, C, D, E)]
- implicit def tuple6[A, B, C, D, E, F](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F]): Reusability[(A, B, C, D, E, F)]
- implicit def tuple7[A, B, C, D, E, F, G](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G]): Reusability[(A, B, C, D, E, F, G)]
- implicit def tuple8[A, B, C, D, E, F, G, H](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H]): Reusability[(A, B, C, D, E, F, G, H)]
- implicit def tuple9[A, B, C, D, E, F, G, H, I](implicit arg0: Reusability[A], arg1: Reusability[B], arg2: Reusability[C], arg3: Reusability[D], arg4: Reusability[E], arg5: Reusability[F], arg6: Reusability[G], arg7: Reusability[H], arg8: Reusability[I]): Reusability[(A, B, C, D, E, F, G, H, I)]
- implicit def unit: Reusability[Unit]
- Annotations
- @inline()
- def unless[A](f: (A) => Boolean): Reusability[A]
Declare a type reusable when both values fail a given predicate.
- implicit def uuid: Reusability[UUID]
- Annotations
- @inline()
- implicit def vector[A](implicit arg0: Reusability[A]): Reusability[Vector[A]]
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def when[A](f: (A) => Boolean): Reusability[A]
Declare a type reusable when both values pass a given predicate.
- implicit def year: Reusability[Year]
- implicit def yearMonth: Reusability[YearMonth]
- implicit def zoneId: Reusability[ZoneId]
- implicit def zoneOffset: Reusability[ZoneOffset]
- def zonedDateTime(tolerance: Duration): Reusability[ZonedDateTime]
- object DecimalImplicitsWithoutTolerance
- object MapImplicits
- object TemporalImplicitsWithoutTolerance
Deprecated Value Members
- def byName[A](f: => Reusability[A]): Reusability[A]
- Annotations
- @deprecated
- Deprecated
(Since version 2.0.0) Use Reusability.suspend