-- | A custom @Prelude@-like module for this project
module Network.IPFS.Prelude
  ( module Control.Lens
  , module Control.Monad.Logger
  , module Data.Aeson
  , module Flow
  , module RIO
  , module RIO.Process
  , identity
  , logInfo
  , logDebug
  , logWarn
  , logError
  , logOther
  ) where

import           Control.Lens                                ((?~))
import           Control.Monad.Logger                        (LogLevel (..),
                                                              MonadLogger (..),
                                                              ToLogStr (..),
                                                              logWithoutLoc)
import           Data.Aeson

import           Network.IPFS.Internal.Orphanage.Utf8Builder ()

import           Flow

import           RIO                                         hiding (Handler,
                                                              LogLevel (..),
                                                              LogSource, id,
                                                              logDebug,
                                                              logDebugS,
                                                              logError,
                                                              logErrorS,
                                                              logInfo, logInfoS,
                                                              logOther,
                                                              logOtherS,
                                                              logWarn, logWarnS,
                                                              timeout, (&))
import           RIO.Process

identity :: a -> a
identity :: a -> a
identity a
a = a
a

logInfo :: (ToLogStr msg, MonadLogger m) => msg -> m ()
logInfo :: msg -> m ()
logInfo = LogSource -> LogLevel -> msg -> m ()
forall (m :: * -> *) msg.
(MonadLogger m, ToLogStr msg) =>
LogSource -> LogLevel -> msg -> m ()
logWithoutLoc LogSource
"" LogLevel
LevelInfo

logDebug :: (ToLogStr msg, MonadLogger m) => msg -> m ()
logDebug :: msg -> m ()
logDebug = LogSource -> LogLevel -> msg -> m ()
forall (m :: * -> *) msg.
(MonadLogger m, ToLogStr msg) =>
LogSource -> LogLevel -> msg -> m ()
logWithoutLoc LogSource
"" LogLevel
LevelDebug

logWarn :: (ToLogStr msg, MonadLogger m) => msg -> m ()
logWarn :: msg -> m ()
logWarn = LogSource -> LogLevel -> msg -> m ()
forall (m :: * -> *) msg.
(MonadLogger m, ToLogStr msg) =>
LogSource -> LogLevel -> msg -> m ()
logWithoutLoc LogSource
"" LogLevel
LevelWarn

logError :: (ToLogStr msg, MonadLogger m) => msg -> m ()
logError :: msg -> m ()
logError = LogSource -> LogLevel -> msg -> m ()
forall (m :: * -> *) msg.
(MonadLogger m, ToLogStr msg) =>
LogSource -> LogLevel -> msg -> m ()
logWithoutLoc LogSource
"" LogLevel
LevelError

logOther :: (ToLogStr msg, MonadLogger m) => LogLevel -> msg -> m ()
logOther :: LogLevel -> msg -> m ()
logOther = LogSource -> LogLevel -> msg -> m ()
forall (m :: * -> *) msg.
(MonadLogger m, ToLogStr msg) =>
LogSource -> LogLevel -> msg -> m ()
logWithoutLoc LogSource
""