defmodule Vtc.Timecode.Sections do
@moduledoc """
Holds the individual sections of a timecode for formatting / manipulation.
## Struct Fields
- `negative`: Whether the timecode is less than 0.
- `hours`: Hours place value.
- `minutes`: Minutes place value. This is not the toal minutes, but the minutes added
to `hours` to get a final time.
- `seconds`: Seconds place value. As minutes, remainder value rather than total
value.
- `frames`: Frames place value. As seconds, remainder value rather than total
value.
"""
@enforce_keys [:negative?, :hours, :minutes, :seconds, :frames]
defstruct [:negative?, :hours, :minutes, :seconds, :frames]
@typedoc """
Struct type.
"""
@type t :: %__MODULE__{
negative?: boolean(),
hours: integer(),
minutes: integer(),
seconds: integer(),
frames: integer()
}
end