{-# LANGUAGE Haskell2010 #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE BinaryLiterals #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE CPP #-} {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveLift #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralisedNewtypeDeriving #-} {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiWayIf #-} {-# LANGUAGE NumericUnderscores #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PackageImports #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeSynonymInstances #-} module Data.Multibase.Types.Internal.ByteString where import qualified Data.ByteString.Lazy as LBS import qualified Data.ByteString.Short as SBS import Data.Multibase.Types.Internal.Basic import Data.Multibase.Types.Internal.MbDecodeFailure class ToByteString a where toByteString :: a -> ByteString class FromByteString a where fromByteString :: ByteString -> Either MbDecodeFailure a instance ToByteString ByteString where toByteString = id instance ToByteString ByteStringLazy where toByteString = LBS.toStrict instance ToByteString ByteStringShort where toByteString = SBS.fromShort instance FromByteString ByteString where fromByteString = Right instance FromByteString ByteStringLazy where fromByteString = Right . LBS.fromStrict instance FromByteString ByteStringShort where fromByteString = Right . SBS.toShort