packages feed

thrift-http-0.1.0.1: test/common/EchoHandler.hs

{-
  Copyright (c) Meta Platforms, Inc. and affiliates.
  All rights reserved.

  This source code is licensed under the BSD-style license found in the
  LICENSE file in the root directory of this source tree.
-}

module EchoHandler
  ( echoHandler

  , EchoerState
  , initEchoerState
  ) where

import CalculatorHandler

import Echoer.Echoer.Service

newtype EchoerState = EchoerState CalculatorState

initEchoerState :: IO EchoerState
initEchoerState = EchoerState <$> initCalcState

echoHandler :: EchoerState -> EchoerCommand a -> IO a
echoHandler _ (Echo input) = return input
echoHandler (EchoerState c) (SuperCalculator x) = calculatorHandler c x