Packages

trait SpanSugar extends AnyRef

Trait providing four implicit conversions that allow you to specify spans of time by invoking "units" methods such as millis, seconds, and minutes on Int, Long, Float, and Double.

This trait enables you to specify a span of time in a clear, boilerplate-free way when you need to provide an instance of Span. This can be used, for example, with the failAfter method of trait Timeouts or the timeLimit field of trait TimeLimitedTests. It can also be used to specify timeouts when using traits Eventually, Futures, Waiter. Here are examples of each unit enabled by this trait:

Int Long Float Double
1 nanosecond 1L nanosecond 1.0F nanosecond 1.0 nanosecond
100 nanoseconds 100L nanoseconds 99.8F nanoseconds 99.8 nanoseconds
1 microsecond 1L microsecond 1.0F microsecond 1.0 microsecond
100 microseconds 100L microseconds 99.8F microseconds 99.8 microseconds
1 millisecond 1L millisecond 1.0F millisecond 1.0 millisecond
100 milliseconds 100L milliseconds 99.8F milliseconds 99.8 milliseconds
100 millis 100L millis 99.8F millis 99.8 millis
1 second 1L second 1.0F second 1.0 second
100 seconds 100L seconds 99.8F seconds 99.8 seconds
1 minute 1L minute 1.0F minute 1.0 minute
100 minutes 100L minutes 99.8F minutes 99.8 minutes
1 hour 1L hour 1.0F hour 1.0 hour
100 hours 100L hours 99.8F hours 99.8 hours
1 day 1L day 1.0F day 1.0 day
100 days 100L days 99.8F days 99.8 days

This trait is not the default way to specify Spans for two reasons. First, it adds four implicits, which would give the compiler more work to do and may conflict with other implicits the user has in scope. Instead, Span provides a clear, concise default way to specify time spans that requires no implicits. Here's an example:

Span(1, Second)

If you already have implicit conversions in scope that provide a similar syntax sugar for expression time spans, you can use that by providing an implicit conversion from the result of those expressions to Span. Note that because of implicit conversions in the Span companion object, you can use a scala.concurrent.duration.Duration (including in its "sugary" form) where a Span is needed, and vice versa.

Source
SpanSugar.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SpanSugar
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. class FloatingGrainOfTime extends AnyRef

    Class containing methods that return a Span time value calculated from the Double value passed to the FloatingGrainOfTime constructor.

  2. class GrainOfTime extends AnyRef

    Class containing methods that return a Span time value calculated from the Long value passed to the GrainOfTime constructor.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. implicit def convertDoubleToGrainOfTime(d: Double): FloatingGrainOfTime

    Implicit conversion that adds time units methods to Doubles.

    Implicit conversion that adds time units methods to Doubles.

    returns

    a FloatingGrainOfTime wrapping the passed Double

  7. implicit def convertFloatToGrainOfTime(f: Float): FloatingGrainOfTime

    Implicit conversion that adds time units methods to Floats.

    Implicit conversion that adds time units methods to Floats.

    returns

    a FloatingGrainOfTime wrapping the passed Float

  8. implicit def convertIntToGrainOfTime(i: Int): GrainOfTime

    Implicit conversion that adds time units methods to Ints.

    Implicit conversion that adds time units methods to Ints.

    returns

    a GrainOfTime wrapping the passed Int

  9. implicit def convertLongToGrainOfTime(i: Long): GrainOfTime

    Implicit conversion that adds time units methods to Longs.

    Implicit conversion that adds time units methods to Longs.

    returns

    a GrainOfTime wrapping the passed Long

  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  12. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  13. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. implicit val postfixOps: postfixOps
  20. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped