{-# LANGUAGE DefaultSignatures #-}
module Network.ONCRPC.XDR.Opaque
( Opaqued(..)
, unopacify'
, toOpaque
, toOpaque'
, fromOpaque
, fromOpaque'
) where
import Data.ByteString (ByteString)
import Data.Functor.Identity (runIdentity)
import Data.Maybe (fromJust)
import Network.ONCRPC.XDR.Array
import Network.ONCRPC.XDR.Serial
import qualified Network.ONCRPC.Prot as RPC
class Opaqued a where
opacify :: a -> ByteString
default opacify :: XDR a => a -> ByteString
opacify = forall a. XDR a => a -> ByteString
xdrSerialize
unopacify :: MonadFail m => ByteString -> m a
default unopacify :: (XDR a, MonadFail m) => ByteString -> m a
unopacify = forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either forall (m :: * -> *) a. MonadFail m => String -> m a
fail forall (m :: * -> *) a. Monad m => a -> m a
return forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. XDR a => ByteString -> Either String a
xdrDeserialize
unopacify' :: Opaqued a => ByteString -> a
unopacify' :: forall a. Opaqued a => ByteString -> a
unopacify' = forall a. HasCallStack => Maybe a -> a
fromJust forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *).
(Opaqued a, MonadFail m) =>
ByteString -> m a
unopacify
toOpaque :: (Opaqued a, KnownOrdering o, KnownNat n) => a -> Maybe (LengthArray o n OpaqueString)
toOpaque :: forall a (o :: Ordering) (n :: Nat).
(Opaqued a, KnownOrdering o, KnownNat n) =>
a -> Maybe (LengthArray o n OpaqueString)
toOpaque = forall (o :: Ordering) (n :: Nat) a.
(KnownOrdering o, KnownNat n, HasLength a) =>
a -> Maybe (LengthArray o n a)
lengthArray forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> OpaqueString
OpaqueString forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Opaqued a => a -> ByteString
opacify
toOpaque' :: (Opaqued a, KnownOrdering o, KnownNat n) => a -> LengthArray o n OpaqueString
toOpaque' :: forall a (o :: Ordering) (n :: Nat).
(Opaqued a, KnownOrdering o, KnownNat n) =>
a -> LengthArray o n OpaqueString
toOpaque' = forall (o :: Ordering) (n :: Nat) a.
(KnownOrdering o, KnownNat n, HasLength a) =>
a -> LengthArray o n a
lengthArray' forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> OpaqueString
OpaqueString forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Opaqued a => a -> ByteString
opacify
fromOpaque :: (Opaqued a, MonadFail m) => LengthArray o n OpaqueString -> m a
fromOpaque :: forall a (m :: * -> *) (o :: Ordering) (n :: Nat).
(Opaqued a, MonadFail m) =>
LengthArray o n OpaqueString -> m a
fromOpaque = forall a (m :: * -> *).
(Opaqued a, MonadFail m) =>
ByteString -> m a
unopacify forall b c a. (b -> c) -> (a -> b) -> a -> c
. OpaqueString -> ByteString
unOpaqueString forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (o :: Ordering) (n :: Nat) a. LengthArray o n a -> a
unLengthArray
fromOpaque' :: Opaqued a => LengthArray o n OpaqueString -> a
fromOpaque' :: forall a (o :: Ordering) (n :: Nat).
Opaqued a =>
LengthArray o n OpaqueString -> a
fromOpaque' = forall a. Opaqued a => ByteString -> a
unopacify' forall b c a. (b -> c) -> (a -> b) -> a -> c
. OpaqueString -> ByteString
unOpaqueString forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (o :: Ordering) (n :: Nat) a. LengthArray o n a -> a
unLengthArray
instance Opaqued RPC.Authsys_parms