{-# LANGUAGE GeneralizedNewtypeDeriving #-}

module Cardano.Crypto.Raw (
  Raw (..),
)
where

import Cardano.Ledger.Binary (DecCBOR, EncCBOR, FromCBOR, ToCBOR)
import Control.DeepSeq (NFData)
import Data.ByteString (ByteString)
import Prelude

-- | A wrapper over 'ByteString' for signalling that a bytestring should be
--   processed as a sequence of bytes, not as a separate entity. It's used in
--   crypto and binary code.
newtype Raw = Raw ByteString
  deriving (Raw -> Raw -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Raw -> Raw -> Bool
$c/= :: Raw -> Raw -> Bool
== :: Raw -> Raw -> Bool
$c== :: Raw -> Raw -> Bool
Eq, Eq Raw
Raw -> Raw -> Bool
Raw -> Raw -> Ordering
Raw -> Raw -> Raw
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Raw -> Raw -> Raw
$cmin :: Raw -> Raw -> Raw
max :: Raw -> Raw -> Raw
$cmax :: Raw -> Raw -> Raw
>= :: Raw -> Raw -> Bool
$c>= :: Raw -> Raw -> Bool
> :: Raw -> Raw -> Bool
$c> :: Raw -> Raw -> Bool
<= :: Raw -> Raw -> Bool
$c<= :: Raw -> Raw -> Bool
< :: Raw -> Raw -> Bool
$c< :: Raw -> Raw -> Bool
compare :: Raw -> Raw -> Ordering
$ccompare :: Raw -> Raw -> Ordering
Ord, Int -> Raw -> ShowS
[Raw] -> ShowS
Raw -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Raw] -> ShowS
$cshowList :: [Raw] -> ShowS
show :: Raw -> String
$cshow :: Raw -> String
showsPrec :: Int -> Raw -> ShowS
$cshowsPrec :: Int -> Raw -> ShowS
Show, Raw -> ()
forall a. (a -> ()) -> NFData a
rnf :: Raw -> ()
$crnf :: Raw -> ()
NFData, Typeable Raw
Proxy Raw -> Text
forall s. Decoder s Raw
forall a.
Typeable a
-> (forall s. Decoder s a)
-> (forall s. Proxy a -> Decoder s ())
-> (Proxy a -> Text)
-> DecCBOR a
forall s. Proxy Raw -> Decoder s ()
label :: Proxy Raw -> Text
$clabel :: Proxy Raw -> Text
dropCBOR :: forall s. Proxy Raw -> Decoder s ()
$cdropCBOR :: forall s. Proxy Raw -> Decoder s ()
decCBOR :: forall s. Decoder s Raw
$cdecCBOR :: forall s. Decoder s Raw
DecCBOR, Typeable Raw
Raw -> Encoding
(forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Raw] -> Size
(forall t. EncCBOR t => Proxy t -> Size) -> Proxy Raw -> Size
forall a.
Typeable a
-> (a -> Encoding)
-> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy a -> Size)
-> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy [a] -> Size)
-> EncCBOR a
encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Raw] -> Size
$cencodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Raw] -> Size
encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy Raw -> Size
$cencodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy Raw -> Size
encCBOR :: Raw -> Encoding
$cencCBOR :: Raw -> Encoding
EncCBOR, Typeable Raw
Proxy Raw -> Text
forall s. Decoder s Raw
forall a.
Typeable a
-> (forall s. Decoder s a) -> (Proxy a -> Text) -> FromCBOR a
label :: Proxy Raw -> Text
$clabel :: Proxy Raw -> Text
fromCBOR :: forall s. Decoder s Raw
$cfromCBOR :: forall s. Decoder s Raw
FromCBOR, Typeable Raw
Raw -> Encoding
(forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Raw] -> Size
(forall t. ToCBOR t => Proxy t -> Size) -> Proxy Raw -> Size
forall a.
Typeable a
-> (a -> Encoding)
-> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy a -> Size)
-> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy [a] -> Size)
-> ToCBOR a
encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Raw] -> Size
$cencodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Raw] -> Size
encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy Raw -> Size
$cencodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy Raw -> Size
toCBOR :: Raw -> Encoding
$ctoCBOR :: Raw -> Encoding
ToCBOR)