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