module Botan.Low.View
(
BotanViewBinFn(..)
, BotanViewBinCallback(..)
, viewBin
, BotanViewStrFn(..)
, BotanViewStrCallback(..)
, viewStr
)where
import qualified Data.ByteString as ByteString
import Data.Void
import System.IO
import Botan.Bindings.View
import Botan.Low.Error
import Botan.Low.Make
import Botan.Low.Prelude
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