Skip to content
Snippets Groups Projects
Commit 626a02d4 authored by Jean-Paul Calderone's avatar Jean-Paul Calderone
Browse files

LambdaCase, why not

parent 9484710e
No related branches found
No related tags found
1 merge request!15Use ExceptT
Pipeline #5555 passed
{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE LambdaCase #-}
module Main where module Main where
...@@ -23,16 +24,16 @@ main = ...@@ -23,16 +24,16 @@ main =
=<< ( runExceptT $ =<< ( runExceptT $
do do
[announcementPath, readCap] <- lift getArgs [announcementPath, readCap] <- lift getArgs
-- Parse read capability
cap <- mightFail "Failed to parse capability: " . pure . parse pCapability "<argv>" . T.pack $ readCap
-- Load server announcements -- Load server announcements
announcements <- mightFail "Failed to parse announcements: " $ decodeFileEither announcementPath announcements <- mightFail "Failed to parse announcements: " $ decodeFileEither announcementPath
case cap of -- Parse read capability
(SDMFVerifier _) -> ExceptT . pure . Left . Failed $ "Nothing implemented for verifier capabilities." (mightFail "Failed to parse capability: " . pure . parse pCapability "<argv>" . T.pack) readCap
(SDMFWriter rwcap) -> go announcements (writerReader rwcap) >>= \case
(SDMFReader rocap) -> go announcements rocap SDMFVerifier _ -> ExceptT . pure . Left . Failed $ "Nothing implemented for verifier capabilities."
SDMFWriter rwcap -> go announcements (writerReader rwcap)
SDMFReader rocap -> go announcements rocap
) )
where where
go :: Announcements -> Reader -> ExceptT Failed IO BL.ByteString go :: Announcements -> Reader -> ExceptT Failed IO BL.ByteString
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment