packages feed

todoist-sdk-0.1.2.1: src/Web/Todoist/Lens.hs

{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE RankNTypes #-}

{- |
Module: Web.Todoist.Lens
Description: Getter-only lenses for TodoistSDK types

This module re-exports the @microlens@ operators needed for read-only field access.
All lenses in TodoistSDK are getter-only - they provide read access but no setters.

For field mutations, use the builder pattern (@Web.Todoist.Util.Builder@).

Example usage:
@
import Web.Todoist
import Web.Todoist.Lens ((^.))

-- Extract field from Project
let projectName = myProject ^. name

-- Compose getters for nested access
let dueDateValue = myTask ^. due . date
@
-}
module Web.Todoist.Lens
    ( -- * Getter Types
      Getter
    , Getting
      -- * Operators
    , (^.)
    , to
    ) where

import Lens.Micro (Getting, to, (^.))

-- | A 'Getter' is a read-only lens
type Getter s a = forall r. Getting r s a