Hyperlinkv0.8.0-beta.28

Duration

Duration.negateconsteffect/Duration.ts:560
(self: Duration): Duration

Returns the negated duration.

Example (Negating durations)

import { Duration } from "effect"

Duration.toMillis(Duration.negate(Duration.seconds(5))) // -5000
Duration.negate(Duration.infinity) === Duration.negativeInfinity // true
math
Source effect/Duration.ts:56012 lines
export const negate = (self: Duration): Duration => {
  switch (self.value._tag) {
    case "Infinity":
      return negativeInfinity
    case "NegativeInfinity":
      return infinity
    case "Millis":
      return self.value.millis === 0 ? self : make(-self.value.millis)
    case "Nanos":
      return self.value.nanos === bigint0 ? self : make(-self.value.nanos)
  }
}