View Source IntervalSigil (interval_sigil v0.1.1)

Interval sigils and conversion utilities

Library for defining and converting time intervals.

Features

  • Define time intervals in a human-readable format.
  • Convert intervals to various units, including fractional values.
  • Support for multiple time units within a single definition.

Examples

Default conversion to milliseconds

    iex> import IntervalSigil
    iex> ~i"2m 15s"
    135000

Conversion to alternative units

    iex> ~i"2m 15s"s
    135

Floating-point results with uppercase sigil ~I

    iex> ~I"6D"M
    0.2 # Converts days to months (1 month = 30 days)

    iex> ~I"75s"m
    1.25 # Converts seconds to minutes

Explicit functions to_integer and to_float to convert time intervals

    iex> IntervalSigil.to_integer("3h 15m")
    11700000

    iex> IntervalSigil.to_integer("3h 15m", "h")
    3

    iex> IntervalSigil.to_float("3h 15m", "h")
    3.25

Supported Units

  • nanosecond (ns)
  • microsecond (us)
  • millisecond (ms, default)
  • second (s)
  • minute (m)
  • hour (h)
  • day (D)
  • week (W)
  • month (M, =30 days)
  • year (Y, =365 days)

Additional Information

  • Intervals can include multiple units ordered from largest to smallest, either separated by spaces (e.g., ~i"1h 30m") or combined (e.g., ~i"1h30m").
  • The ~i sigil converts to integer values, while ~I provides fractional results.

Summary

Functions

Handles the sigil ~I for float intervals.

Handles the sigil ~i for integer intervals.

Converts string interval to float

Converts string interval to integer

Functions

sigil_I(string, unit)

Handles the sigil ~I for float intervals.

This sigil converts string representation of an interval to float number of units.

sigil_i(string, unit)

Handles the sigil ~i for integer intervals.

This sigil converts string representation of an interval to integer number of units.

to_float(string, unit \\ "ms")

Converts string interval to float

to_integer(string, unit \\ "ms")

Converts string interval to integer