packages feed

faktory-1.1.2.0: library/Faktory/Settings/Queue.hs

module Faktory.Settings.Queue
  ( Queue(..)
  , namespaceQueue
  , queueArg
  , defaultQueue
  , Namespace(..)
  ) where

import Faktory.Prelude

import Data.Aeson
import Data.ByteString.Lazy (ByteString, fromStrict)
import Data.String
import Data.Text.Encoding (encodeUtf8)
import Faktory.Connection

newtype Queue = Queue Text
  deriving stock (Eq, Show)
  deriving newtype (IsString, FromJSON, ToJSON)

namespaceQueue :: Namespace -> Queue -> Queue
namespaceQueue (Namespace n) (Queue q) = Queue $ mappend n q

queueArg :: Queue -> ByteString
queueArg (Queue q) = fromStrict $ encodeUtf8 q

defaultQueue :: Queue
defaultQueue = "default"