var errInvalidUVIndex … type UVDataPoints … type UV … // NewUV creates a new reference to UV func NewUV(key string, options ...Option) (*UV, error) { … } // Current gets the current UV data for the given coordinates func (u *UV) Current(coord *Coordinates) error { … } // Historical gets the historical UV data for the coordinates and times func (u *UV) Historical(coord *Coordinates, start, end time.Time) error { … } type UVIndexInfo … var UVData … // UVInformation provides information on the given UV data which includes the severity // and "Recommended protection" func (u *UV) UVInformation() ([]UVIndexInfo, error) { … }