-- |
-- Module      : Data.X509.Internal
-- License     : BSD-style
-- Maintainer  : Vincent Hanquez <vincent@snarc.org>
-- Stability   : experimental
-- Portability : unknown
module Data.X509.Internal (
    module Data.ASN1.Parse,
    asn1Container,
    OID,

    -- * error handling
    ErrT,
    runErrT,
) where

import Control.Monad.Trans.Except
import Data.ASN1.Parse
import Data.ASN1.Types

runErrT :: ExceptT e m a -> m (Either e a)
runErrT :: forall e (m :: * -> *) a. ExceptT e m a -> m (Either e a)
runErrT = ExceptT e m a -> m (Either e a)
forall e (m :: * -> *) a. ExceptT e m a -> m (Either e a)
runExceptT
type ErrT = ExceptT

-- | create a container around the stream of ASN1
asn1Container :: ASN1ConstructionType -> [ASN1] -> [ASN1]
asn1Container :: ASN1ConstructionType -> [ASN1] -> [ASN1]
asn1Container ASN1ConstructionType
ty [ASN1]
l = [ASN1ConstructionType -> ASN1
Start ASN1ConstructionType
ty] [ASN1] -> [ASN1] -> [ASN1]
forall a. [a] -> [a] -> [a]
++ [ASN1]
l [ASN1] -> [ASN1] -> [ASN1]
forall a. [a] -> [a] -> [a]
++ [ASN1ConstructionType -> ASN1
End ASN1ConstructionType
ty]