packages feed

ribosome-0.9.9.9: lib/Ribosome/Interpreter/PluginName.hs

-- |Interpreters for @'Reader' ('PluginConfig' c)@
module Ribosome.Interpreter.PluginName where

import Ribosome.Data.PluginConfig (PluginConfig (PluginConfig, name))
import Ribosome.Data.PluginName (PluginName)

-- |Interpret @'Reader' 'PluginName'@ by extracting the name from the plugin config provided by another @'Reader'
-- 'PluginConfig'@.
--
-- This interpreter is used by the main function machinery.
interpretPluginName ::
  Member (Reader (PluginConfig c)) r =>
  InterpreterFor (Reader PluginName) r
interpretPluginName sem =
  ask >>= \ PluginConfig {name} ->
    runReader name sem