module Botan.Low.View (
BotanViewBinFn
, BotanViewBinCallback
, viewBin
, BotanViewStrFn
, BotanViewStrCallback
, viewStr
) where
import Botan.Bindings.View
import Control.Exception
viewBin :: BotanViewBinFn ctx -> (BotanViewBinCallback ctx -> IO a) -> IO a
viewBin :: forall ctx a.
BotanViewBinFn ctx -> (BotanViewBinCallback ctx -> IO a) -> IO a
viewBin BotanViewBinFn ctx
f = IO (BotanViewBinCallback ctx)
-> (BotanViewBinCallback ctx -> IO ())
-> (BotanViewBinCallback ctx -> IO a)
-> IO a
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (BotanViewBinFn ctx -> IO (BotanViewBinCallback ctx)
forall ctx. BotanViewBinFn ctx -> IO (BotanViewBinCallback ctx)
mallocBotanViewBinCallback BotanViewBinFn ctx
f) BotanViewBinCallback ctx -> IO ()
forall ctx. BotanViewBinCallback ctx -> IO ()
freeBotanViewBinCallback
viewStr :: BotanViewStrFn ctx -> (BotanViewStrCallback ctx -> IO a) -> IO a
viewStr :: forall ctx a.
BotanViewStrFn ctx -> (BotanViewStrCallback ctx -> IO a) -> IO a
viewStr BotanViewStrFn ctx
f = IO (BotanViewStrCallback ctx)
-> (BotanViewStrCallback ctx -> IO ())
-> (BotanViewStrCallback ctx -> IO a)
-> IO a
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (BotanViewStrFn ctx -> IO (BotanViewStrCallback ctx)
forall ctx. BotanViewStrFn ctx -> IO (BotanViewStrCallback ctx)
mallocBotanViewStrCallback BotanViewStrFn ctx
f) BotanViewStrCallback ctx -> IO ()
forall ctx. BotanViewStrCallback ctx -> IO ()
freeBotanViewStrCallback