enkidatron / elm-cldr / Cldr.Format.OptionsBuilder

Build options records using type-safe helper functions.

import Cldr.Format.Options exposing (..)

options : DateTimeOptions
options =
    initDateTime
        |> setYear Numeric
        |> setMonthText Short
        |> setDay Numeric
        |> setHour Numeric
        |> setMinute TwoDigit
        |> setPeriod Short
        |> toOptions


type OptionsBuilder a b

An opaque type that uses the "phantom builder" pattern.

Initialize

initDateTime : OptionsBuilder EmptyDateTime Cldr.Format.Options.DateTimeOptions

Start building a DateTimeOptions value

initDate : OptionsBuilder EmptyDate Cldr.Format.Options.DateOptions

Start building a DateTime value

Set options

Date options

setEra : Cldr.Format.Options.TextOption -> OptionsBuilder (EraNotSetYet a) (HasEra b) -> OptionsBuilder a (HasEra b)

Set the era field.

setYear : Cldr.Format.Options.NumberOption -> OptionsBuilder (YearNotSetYet a) (HasYear b) -> OptionsBuilder a (HasYear b)

Set the year field.

setMonthNumber : Cldr.Format.Options.NumberOption -> OptionsBuilder (MonthNotSetYet a) (HasMonth b) -> OptionsBuilder a (HasMonth b)

Set the month field to a NumberOption value.

setMonthText : Cldr.Format.Options.TextOption -> OptionsBuilder (MonthNotSetYet a) (HasMonth b) -> OptionsBuilder a (HasMonth b)

Set the month field to a TextOption value.

setDay : Cldr.Format.Options.NumberOption -> OptionsBuilder (DayNotSetYet a) (HasDay b) -> OptionsBuilder a (HasDay b)

Set the day field.

setWeekday : Cldr.Format.Options.TextOption -> OptionsBuilder (WeekdayNotSetYet a) (HasWeekday b) -> OptionsBuilder a (HasWeekday b)

Set the weekday field.

DateTime specific options

setPeriod : Cldr.Format.Options.TextOption -> OptionsBuilder (PeriodNotSetYet a) (HasPeriod b) -> OptionsBuilder a (HasPeriod b)

Set the period field.

setHour : Cldr.Format.Options.NumberOption -> OptionsBuilder (HourNotSetYet a) (HasHour b) -> OptionsBuilder a (HasHour b)

Set the hour field.

setMinute : Cldr.Format.Options.NumberOption -> OptionsBuilder (MinuteNotSetYet a) (HasMinute b) -> OptionsBuilder a (HasMinute b)

Set the minute field.

setSecond : Cldr.Format.Options.NumberOption -> OptionsBuilder (SecondNotSetYet a) (HasSecond b) -> OptionsBuilder a (HasSecond b)

Set the second field.

setFractionalSecondDigits : Cldr.Format.Options.FractionalDigits -> OptionsBuilder (FractionalSecondDigitsNotSetYet a) (HasFractionalSecondDigits b) -> OptionsBuilder a (HasFractionalSecondDigits b)

Set the fractionalSecondDigits field.

setZone : Cldr.Format.Options.NameOption -> OptionsBuilder (ZoneNotSetYet a) (HasZone b) -> OptionsBuilder a (HasZone b)

Set the zone field.

setHour12 : Cldr.Format.Options.HourType -> OptionsBuilder (Hour12NotSetYet a) (HasHour12 b) -> OptionsBuilder a (HasHour12 b)

Set the hour12 field.

Convert

toOptions : OptionsBuilder a b -> b

Get the options that you have built.