Span

object Span

Companion object for Span that provides two factory methods for creating Span instances.

The first argument to each factory method is a numeric value; the second argument is a Units value. One factory method takes a Long, so it can be invoked with either an Int or Long, as in:

import org.scalatest.time._

Span(1, Second)
Span(1L, Millisecond)

The other factory method takes a Double, so it can be invoked with either a Float or a Double:

import org.scalatest.time._

Span(2.5F, Seconds)
Span(99.9, Microseconds)
Companion:
class
class Object
trait Matchable
class Any
Span.type

Value members

Concrete methods

def apply(length: Long, units: Units): Span

Returns a Span representing the passed Long length of time in the passed units.

Returns a Span representing the passed Long length of time in the passed units.

If the requested time span is less than zero or greater than Long.MaxValue nanoseconds, this method will throw an IllegalArgumentException. (Note: a zero-length time span is allowed, just not a negative or too-large time span.)

Value parameters:
length

the length of time denominated by the passed units

units

the units of time for the passed length

Returns:

a Span representing the requested time span

Throws:
IllegalArgumentException

if the requested time span is greater than Long.MaxValue nanoseconds, the maximum time span expressible with a Span

def apply(length: Double, units: Units): Span

Returns a Span representing the passed Double length of time in the passed units.

Returns a Span representing the passed Double length of time in the passed units.

If the requested time span is less than 0.0 or, when converted to Long number of nanoseconds, would be greater than Long.MaxValue nanoseconds, this method will throw an IllegalArgumentException. (Note: a zero-length time span is allowed, just not a negative or too-large time span.)

Value parameters:
length

the length of time denominated by the passed units

units

the units of time for the passed length

Returns:

a Span representing the requested time span

Throws:
IllegalArgumentException

if the requested time span, when converted to Long number of nanoseconds, would be greater than Long.MaxValue nanoseconds, the maximum time span expressible with a Span

Concrete fields

val Max: Span

A Span with the maximum expressible value, Span(Long.MaxValue, Nanoseconds), which is approximately 292 years.

A Span with the maximum expressible value, Span(Long.MaxValue, Nanoseconds), which is approximately 292 years.

One use case for this Span value is to help convert a duration concept from a different library to Span when that library's duration concept includes a notion of infinite durations. An infinite duration can be converted to Span.Max.

Returns:

a Span with the maximum expressible value, Long.MaxValue nanoseconds.

val Zero: Span

A Span with representing a zero-length span of time.

A Span with representing a zero-length span of time.

Returns:

a zero-length Span.

Implicits

Implicits

implicit def convertDurationToSpan(duration: Duration): Span

Implicitly converts a scala.concurrent.duration.Duration to a Span, so that a Duration can be used where a Span is needed.

Implicitly converts a scala.concurrent.duration.Duration to a Span, so that a Duration can be used where a Span is needed.

This function transforms Duration.MinusInf to Span.Zero, Duration.Inf and Undefined to Span.Max, and all others to a Span containing a corresponing number of nanoseconds.

implicit def convertSpanToDuration(span: Span): FiniteDuration

Implicitly converts a Span to a scala.concurrent.duration.FiniteDuration, so that a Span can be used where a FiniteDuration is needed.

Implicitly converts a Span to a scala.concurrent.duration.FiniteDuration, so that a Span can be used where a FiniteDuration is needed.