-- |
--
-- The structure used to contain the required character and related functions for running a "builder".
--
module Waargonaut.Encode.Builder.Types (Builder (..)) where

-- | The builder data type.
data Builder t b = Builder
  { Builder t b -> Char -> b
fromChar  :: Char -> b -- ^ Create a builder from a Haskell 'Char'
  , Builder t b -> t -> b
fromChunk :: t -> b -- ^ Create a builder from a chunk or piece of @t@
  , Builder t b -> Int -> b
fromInt   :: Int -> b  -- ^ Create a builder from a Haskell 'Int'
  }