packages feed

proto-lens-jsonpb-0.1.0.0: app/Main.hs

module Main where

import           Data.Aeson (ToJSON (..), fromEncoding)
import           Data.ByteString.Builder (toLazyByteString)
import qualified Data.ByteString.Lazy.Char8 as BC
import           Data.ProtoLens (defMessage)
import           Lens.Micro
import           Proto.Haberdasher as P
import           Proto.Haberdasher_Fields as P
import           Proto.Haberdasher_JSON ()

main :: IO ()
main = do
  print mkPong
  BC.putStrLn $ toLazyByteString (fromEncoding (toEncoding mkPong))
  where
    mkPong :: Pong
    mkPong = defMessage
      & P.status .~ "OK"
      & P.stuff .~ mempty
      & P.maybe'extra .~ Nothing
      & P.id .~ 1
      & P.type' .~ "hello"