{-# LANGUAGE ScopedTypeVariables #-}

module Network.TLS.Util (
    sub,
    takelast,
    partition3,
    partition6,
    (&&!),
    fmapEither,
    catchException,
    forEitherM,
    mapChunks_,
    getChunks,
    Saved,
    saveMVar,
    restoreMVar,
) where

import qualified Data.ByteString as B
import Network.TLS.Imports

import Control.Concurrent.MVar
import Control.Exception (SomeAsyncException (..))
import qualified Control.Exception as E

sub :: ByteString -> Int -> Int -> Maybe ByteString
sub :: ByteString -> Int -> Int -> Maybe ByteString
sub ByteString
b Int
offset Int