View Source IntervalSigil (interval_sigil v0.1.0)

The IntervalSigil library introduces the ~i and ~I sigils for intuitive and precise time intervals definition.

Features

  • Convert time intervals from 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 ~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

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.

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.