{-# LANGUAGE CPP #-}
{-# LANGUAGE UndecidableInstances #-}
module Binrep.Type.Int where
import Binrep.Put.Mason qualified as Mason
import Binrep.Put.Bytezap qualified as Bytezap
import Binrep.Get.Flatparse qualified as Flatparse
import Binrep.BLen.Simple qualified as Simple
import Binrep.CBLen
import Bytezap.Poke.Int qualified as BZ
import FlatParse.Basic qualified as FP
import Binrep.Type.Common ( Endianness(..) )
import Strongweak
import Data.Word
import Data.Int
import Data.Aeson
import GHC.Generics ( Generic )
import Data.Data ( Data )
import GHC.TypeNats
import Binrep.Via ( Binreply(..) )
data ISign
= U
| I
deriving stock ((forall x. ISign -> Rep ISign x)
-> (forall x. Rep ISign x -> ISign) -> Generic ISign
forall x. Rep ISign x -> ISign
forall x. ISign -> Rep ISign x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ISign -> Rep ISign x
from :: forall x. ISign -> Rep ISign x
$cto :: forall x. Rep ISign x -> ISign
to :: forall x. Rep ISign x -> ISign
Generic, Typeable ISign
Typeable ISign
-> (forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ISign -> c ISign)
-> (forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ISign)
-> (ISign -> Constr)
-> (ISign -> DataType)
-> (forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ISign))
-> (forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ISign))
-> ((forall b. Data b => b -> b) -> ISign -> ISign)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ISign -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ISign -> r)
-> (forall u. (forall d. Data d => d -> u) -> ISign -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> ISign -> u)
-> (forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign)
-> (forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign)
-> (forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign)
-> Data ISign
ISign -> Constr
ISign -> DataType
(forall b. Data b => b -> b) -> ISign -> ISign
forall a.
Typeable a
-> (forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> ISign -> u
forall u. (forall d. Data d => d -> u) -> ISign -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ISign -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ISign -> r
forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign
forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign
forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ISign
forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ISign -> c ISign
forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ISign)
forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ISign)
$cgfoldl :: forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ISign -> c ISign
gfoldl :: forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ISign -> c ISign
$cgunfold :: forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ISign
gunfold :: forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ISign
$ctoConstr :: ISign -> Constr
toConstr :: ISign -> Constr
$cdataTypeOf :: ISign -> DataType
dataTypeOf :: ISign -> DataType
$cdataCast1 :: forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ISign)
dataCast1 :: forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ISign)
$cdataCast2 :: forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ISign)
dataCast2 :: forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ISign)
$cgmapT :: (forall b. Data b => b -> b) -> ISign -> ISign
gmapT :: (forall b. Data b => b -> b) -> ISign -> ISign
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ISign -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ISign -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ISign -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ISign -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ISign -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> ISign -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ISign -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ISign -> u
$cgmapM :: forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign
gmapM :: forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign
$cgmapMp :: forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign
gmapMp :: forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign
$cgmapMo :: forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign
gmapMo :: forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ISign -> m ISign
Data, Int -> ISign -> ShowS
[ISign] -> ShowS
ISign -> String
(Int -> ISign -> ShowS)
-> (ISign -> String) -> ([ISign] -> ShowS) -> Show ISign
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ISign -> ShowS
showsPrec :: Int -> ISign -> ShowS
$cshow :: ISign -> String
show :: ISign -> String
$cshowList :: [ISign] -> ShowS
showList :: [ISign] -> ShowS
Show, ISign -> ISign -> Bool
(ISign -> ISign -> Bool) -> (ISign -> ISign -> Bool) -> Eq ISign
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ISign -> ISign -> Bool
== :: ISign -> ISign -> Bool
$c/= :: ISign -> ISign -> Bool
/= :: ISign -> ISign -> Bool
Eq)
newtype Endian (end :: Endianness) a = Endian
{
forall (end :: Endianness) a. Endian end a -> a
unEndian :: a }
deriving stock ((forall x. Endian end a -> Rep (Endian end a) x)
-> (forall x. Rep (Endian end a) x -> Endian end a)
-> Generic (Endian end a)
forall x. Rep (Endian end a) x -> Endian end a
forall x. Endian end a -> Rep (Endian end a) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (end :: Endianness) a x.
Rep (Endian end a) x -> Endian end a
forall (end :: Endianness) a x.
Endian end a -> Rep (Endian end a) x
$cfrom :: forall (end :: Endianness) a x.
Endian end a -> Rep (Endian end a) x
from :: forall x. Endian end a -> Rep (Endian end a) x
$cto :: forall (end :: Endianness) a x.
Rep (Endian end a) x -> Endian end a
to :: forall x. Rep (Endian end a) x -> Endian end a
Generic, Typeable (Endian end a)
Typeable (Endian end a)
-> (forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Endian end a -> c (Endian end a))
-> (forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Endian end a))
-> (Endian end a -> Constr)
-> (Endian end a -> DataType)
-> (forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Endian end a)))
-> (forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Endian end a)))
-> ((forall b. Data b => b -> b) -> Endian end a -> Endian end a)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r)
-> (forall u. (forall d. Data d => d -> u) -> Endian end a -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> Endian end a -> u)
-> (forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a))
-> (forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a))
-> (forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a))
-> Data (Endian end a)
Endian end a -> Constr
Endian end a -> DataType
(forall b. Data b => b -> b) -> Endian end a -> Endian end a
forall a.
Typeable a
-> (forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> Endian end a -> u
forall u. (forall d. Data d => d -> u) -> Endian end a -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r
forall {end :: Endianness} {a}.
(Typeable end, Data a) =>
Typeable (Endian end a)
forall (end :: Endianness) a.
(Typeable end, Data a) =>
Endian end a -> Constr
forall (end :: Endianness) a.
(Typeable end, Data a) =>
Endian end a -> DataType
forall (end :: Endianness) a.
(Typeable end, Data a) =>
(forall b. Data b => b -> b) -> Endian end a -> Endian end a
forall (end :: Endianness) a u.
(Typeable end, Data a) =>
Int -> (forall d. Data d => d -> u) -> Endian end a -> u
forall (end :: Endianness) a u.
(Typeable end, Data a) =>
(forall d. Data d => d -> u) -> Endian end a -> [u]
forall (end :: Endianness) a r r'.
(Typeable end, Data a) =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r
forall (end :: Endianness) a r r'.
(Typeable end, Data a) =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r
forall (end :: Endianness) a (m :: Type -> Type).
(Typeable end, Data a, Monad m) =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
forall (end :: Endianness) a (m :: Type -> Type).
(Typeable end, Data a, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
forall (end :: Endianness) a (c :: Type -> Type).
(Typeable end, Data a) =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Endian end a)
forall (end :: Endianness) a (c :: Type -> Type).
(Typeable end, Data a) =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Endian end a -> c (Endian end a)
forall (end :: Endianness) a (t :: Type -> Type)
(c :: Type -> Type).
(Typeable end, Data a, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Endian end a))
forall (end :: Endianness) a (t :: Type -> Type -> Type)
(c :: Type -> Type).
(Typeable end, Data a, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Endian end a))
forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Endian end a)
forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Endian end a -> c (Endian end a)
forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Endian end a))
forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Endian end a))
$cgfoldl :: forall (end :: Endianness) a (c :: Type -> Type).
(Typeable end, Data a) =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Endian end a -> c (Endian end a)
gfoldl :: forall (c :: Type -> Type).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Endian end a -> c (Endian end a)
$cgunfold :: forall (end :: Endianness) a (c :: Type -> Type).
(Typeable end, Data a) =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Endian end a)
gunfold :: forall (c :: Type -> Type).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Endian end a)
$ctoConstr :: forall (end :: Endianness) a.
(Typeable end, Data a) =>
Endian end a -> Constr
toConstr :: Endian end a -> Constr
$cdataTypeOf :: forall (end :: Endianness) a.
(Typeable end, Data a) =>
Endian end a -> DataType
dataTypeOf :: Endian end a -> DataType
$cdataCast1 :: forall (end :: Endianness) a (t :: Type -> Type)
(c :: Type -> Type).
(Typeable end, Data a, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Endian end a))
dataCast1 :: forall (t :: Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Endian end a))
$cdataCast2 :: forall (end :: Endianness) a (t :: Type -> Type -> Type)
(c :: Type -> Type).
(Typeable end, Data a, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Endian end a))
dataCast2 :: forall (t :: Type -> Type -> Type) (c :: Type -> Type).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Endian end a))
$cgmapT :: forall (end :: Endianness) a.
(Typeable end, Data a) =>
(forall b. Data b => b -> b) -> Endian end a -> Endian end a
gmapT :: (forall b. Data b => b -> b) -> Endian end a -> Endian end a
$cgmapQl :: forall (end :: Endianness) a r r'.
(Typeable end, Data a) =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r
$cgmapQr :: forall (end :: Endianness) a r r'.
(Typeable end, Data a) =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Endian end a -> r
$cgmapQ :: forall (end :: Endianness) a u.
(Typeable end, Data a) =>
(forall d. Data d => d -> u) -> Endian end a -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> Endian end a -> [u]
$cgmapQi :: forall (end :: Endianness) a u.
(Typeable end, Data a) =>
Int -> (forall d. Data d => d -> u) -> Endian end a -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Endian end a -> u
$cgmapM :: forall (end :: Endianness) a (m :: Type -> Type).
(Typeable end, Data a, Monad m) =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
gmapM :: forall (m :: Type -> Type).
Monad m =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
$cgmapMp :: forall (end :: Endianness) a (m :: Type -> Type).
(Typeable end, Data a, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
gmapMp :: forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
$cgmapMo :: forall (end :: Endianness) a (m :: Type -> Type).
(Typeable end, Data a, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
gmapMo :: forall (m :: Type -> Type).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a)
Data, Int -> Endian end a -> ShowS
[Endian end a] -> ShowS
Endian end a -> String
(Int -> Endian end a -> ShowS)
-> (Endian end a -> String)
-> ([Endian end a] -> ShowS)
-> Show (Endian end a)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (end :: Endianness) a.
Show a =>
Int -> Endian end a -> ShowS
forall (end :: Endianness) a. Show a => [Endian end a] -> ShowS
forall (end :: Endianness) a. Show a => Endian end a -> String
$cshowsPrec :: forall (end :: Endianness) a.
Show a =>
Int -> Endian end a -> ShowS
showsPrec :: Int -> Endian end a -> ShowS
$cshow :: forall (end :: Endianness) a. Show a => Endian end a -> String
show :: Endian end a -> String
$cshowList :: forall (end :: Endianness) a. Show a => [Endian end a] -> ShowS
showList :: [Endian end a] -> ShowS
Show)
deriving (Endian end a -> Endian end a -> Bool
(Endian end a -> Endian end a -> Bool)
-> (Endian end a -> Endian end a -> Bool) -> Eq (Endian end a)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (end :: Endianness) a.
Eq a =>
Endian end a -> Endian end a -> Bool
$c== :: forall (end :: Endianness) a.
Eq a =>
Endian end a -> Endian end a -> Bool
== :: Endian end a -> Endian end a -> Bool
$c/= :: forall (end :: Endianness) a.
Eq a =>
Endian end a -> Endian end a -> Bool
/= :: Endian end a -> Endian end a -> Bool
Eq, Eq (Endian end a)
Eq (Endian end a)
-> (Endian end a -> Endian end a -> Ordering)
-> (Endian end a -> Endian end a -> Bool)
-> (Endian end a -> Endian end a -> Bool)
-> (Endian end a -> Endian end a -> Bool)
-> (Endian end a -> Endian end a -> Bool)
-> (Endian end a -> Endian end a -> Endian end a)
-> (Endian end a -> Endian end a -> Endian end a)
-> Ord (Endian end a)
Endian end a -> Endian end a -> Bool
Endian end a -> Endian end a -> Ordering
Endian end a -> Endian end a -> Endian end a
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
forall {end :: Endianness} {a}. Ord a => Eq (Endian end a)
forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Bool
forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Ordering
forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Endian end a
$ccompare :: forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Ordering
compare :: Endian end a -> Endian end a -> Ordering
$c< :: forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Bool
< :: Endian end a -> Endian end a -> Bool
$c<= :: forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Bool
<= :: Endian end a -> Endian end a -> Bool
$c> :: forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Bool
> :: Endian end a -> Endian end a -> Bool
$c>= :: forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Bool
>= :: Endian end a -> Endian end a -> Bool
$cmax :: forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Endian end a
max :: Endian end a -> Endian end a -> Endian end a
$cmin :: forall (end :: Endianness) a.
Ord a =>
Endian end a -> Endian end a -> Endian end a
min :: Endian end a -> Endian end a -> Endian end a
Ord, Endian end a
Endian end a -> Endian end a -> Bounded (Endian end a)
forall a. a -> a -> Bounded a
forall (end :: Endianness) a. Bounded a => Endian end a
$cminBound :: forall (end :: Endianness) a. Bounded a => Endian end a
minBound :: Endian end a
$cmaxBound :: forall (end :: Endianness) a. Bounded a => Endian end a
maxBound :: Endian end a
Bounded, Integer -> Endian end a
Endian end a -> Endian end a
Endian end a -> Endian end a -> Endian end a
(Endian end a -> Endian end a -> Endian end a)
-> (Endian end a -> Endian end a -> Endian end a)
-> (Endian end a -> Endian end a -> Endian end a)
-> (Endian end a -> Endian end a)
-> (Endian end a -> Endian end a)
-> (Endian end a -> Endian end a)
-> (Integer -> Endian end a)
-> Num (Endian end a)
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
forall (end :: Endianness) a. Num a => Integer -> Endian end a
forall (end :: Endianness) a. Num a => Endian end a -> Endian end a
forall (end :: Endianness) a.
Num a =>
Endian end a -> Endian end a -> Endian end a
$c+ :: forall (end :: Endianness) a.
Num a =>
Endian end a -> Endian end a -> Endian end a
+ :: Endian end a -> Endian end a -> Endian end a
$c- :: forall (end :: Endianness) a.
Num a =>
Endian end a -> Endian end a -> Endian end a
- :: Endian end a -> Endian end a -> Endian end a
$c* :: forall (end :: Endianness) a.
Num a =>
Endian end a -> Endian end a -> Endian end a
* :: Endian end a -> Endian end a -> Endian end a
$cnegate :: forall (end :: Endianness) a. Num a => Endian end a -> Endian end a
negate :: Endian end a -> Endian end a
$cabs :: forall (end :: Endianness) a. Num a => Endian end a -> Endian end a
abs :: Endian end a -> Endian end a
$csignum :: forall (end :: Endianness) a. Num a => Endian end a -> Endian end a
signum :: Endian end a -> Endian end a
$cfromInteger :: forall (end :: Endianness) a. Num a => Integer -> Endian end a
fromInteger :: Integer -> Endian end a
Num, Int -> Endian end a
Endian end a -> Int
Endian end a -> [Endian end a]
Endian end a -> Endian end a
Endian end a -> Endian end a -> [Endian end a]
Endian end a -> Endian end a -> Endian end a -> [Endian end a]
(Endian end a -> Endian end a)
-> (Endian end a -> Endian end a)
-> (Int -> Endian end a)
-> (Endian end a -> Int)
-> (Endian end a -> [Endian end a])
-> (Endian end a -> Endian end a -> [Endian end a])
-> (Endian end a -> Endian end a -> [Endian end a])
-> (Endian end a -> Endian end a -> Endian end a -> [Endian end a])
-> Enum (Endian end a)
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
forall (end :: Endianness) a. Enum a => Int -> Endian end a
forall (end :: Endianness) a. Enum a => Endian end a -> Int
forall (end :: Endianness) a.
Enum a =>
Endian end a -> [Endian end a]
forall (end :: Endianness) a.
Enum a =>
Endian end a -> Endian end a
forall (end :: Endianness) a.
Enum a =>
Endian end a -> Endian end a -> [Endian end a]
forall (end :: Endianness) a.
Enum a =>
Endian end a -> Endian end a -> Endian end a -> [Endian end a]
$csucc :: forall (end :: Endianness) a.
Enum a =>
Endian end a -> Endian end a
succ :: Endian end a -> Endian end a
$cpred :: forall (end :: Endianness) a.
Enum a =>
Endian end a -> Endian end a
pred :: Endian end a -> Endian end a
$ctoEnum :: forall (end :: Endianness) a. Enum a => Int -> Endian end a
toEnum :: Int -> Endian end a
$cfromEnum :: forall (end :: Endianness) a. Enum a => Endian end a -> Int
fromEnum :: Endian end a -> Int
$cenumFrom :: forall (end :: Endianness) a.
Enum a =>
Endian end a -> [Endian end a]
enumFrom :: Endian end a -> [Endian end a]
$cenumFromThen :: forall (end :: Endianness) a.
Enum a =>
Endian end a -> Endian end a -> [Endian end a]
enumFromThen :: Endian end a -> Endian end a -> [Endian end a]
$cenumFromTo :: forall (end :: Endianness) a.
Enum a =>
Endian end a -> Endian end a -> [Endian end a]
enumFromTo :: Endian end a -> Endian end a -> [Endian end a]
$cenumFromThenTo :: forall (end :: Endianness) a.
Enum a =>
Endian end a -> Endian end a -> Endian end a -> [Endian end a]
enumFromThenTo :: Endian end a -> Endian end a -> Endian end a -> [Endian end a]
Enum, Num (Endian end a)
Ord (Endian end a)
Num (Endian end a)
-> Ord (Endian end a)
-> (Endian end a -> Rational)
-> Real (Endian end a)
Endian end a -> Rational
forall a. Num a -> Ord a -> (a -> Rational) -> Real a
forall {end :: Endianness} {a}. Real a => Num (Endian end a)
forall {end :: Endianness} {a}. Real a => Ord (Endian end a)
forall (end :: Endianness) a. Real a => Endian end a -> Rational
$ctoRational :: forall (end :: Endianness) a. Real a => Endian end a -> Rational
toRational :: Endian end a -> Rational
Real, Enum (Endian end a)
Real (Endian end a)
Real (Endian end a)
-> Enum (Endian end a)
-> (Endian end a -> Endian end a -> Endian end a)
-> (Endian end a -> Endian end a -> Endian end a)
-> (Endian end a -> Endian end a -> Endian end a)
-> (Endian end a -> Endian end a -> Endian end a)
-> (Endian end a -> Endian end a -> (Endian end a, Endian end a))
-> (Endian end a -> Endian end a -> (Endian end a, Endian end a))
-> (Endian end a -> Integer)
-> Integral (Endian end a)
Endian end a -> Integer
Endian end a -> Endian end a -> (Endian end a, Endian end a)
Endian end a -> Endian end a -> Endian end a
forall a.
Real a
-> Enum a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
forall {end :: Endianness} {a}. Integral a => Enum (Endian end a)
forall {end :: Endianness} {a}. Integral a => Real (Endian end a)
forall (end :: Endianness) a. Integral a => Endian end a -> Integer
forall (end :: Endianness) a.
Integral a =>
Endian end a -> Endian end a -> (Endian end a, Endian end a)
forall (end :: Endianness) a.
Integral a =>
Endian end a -> Endian end a -> Endian end a
$cquot :: forall (end :: Endianness) a.
Integral a =>
Endian end a -> Endian end a -> Endian end a
quot :: Endian end a -> Endian end a -> Endian end a
$crem :: forall (end :: Endianness) a.
Integral a =>
Endian end a -> Endian end a -> Endian end a
rem :: Endian end a -> Endian end a -> Endian end a
$cdiv :: forall (end :: Endianness) a.
Integral a =>
Endian end a -> Endian end a -> Endian end a
div :: Endian end a -> Endian end a -> Endian end a
$cmod :: forall (end :: Endianness) a.
Integral a =>
Endian end a -> Endian end a -> Endian end a
mod :: Endian end a -> Endian end a -> Endian end a
$cquotRem :: forall (end :: Endianness) a.
Integral a =>
Endian end a -> Endian end a -> (Endian end a, Endian end a)
quotRem :: Endian end a -> Endian end a -> (Endian end a, Endian end a)
$cdivMod :: forall (end :: Endianness) a.
Integral a =>
Endian end a -> Endian end a -> (Endian end a, Endian end a)
divMod :: Endian end a -> Endian end a -> (Endian end a, Endian end a)
$ctoInteger :: forall (end :: Endianness) a. Integral a => Endian end a -> Integer
toInteger :: Endian end a -> Integer
Integral) via a
deriving (IsCBLen (Endian end a)
forall {k} (a :: k). IsCBLen a
IsCBLen, Endian end a -> Int
(Endian end a -> Int) -> BLen (Endian end a)
forall a. (a -> Int) -> BLen a
forall (end :: Endianness) a. BLen a => Endian end a -> Int
$cblen :: forall (end :: Endianness) a. BLen a => Endian end a -> Int
blen :: Endian end a -> Int
Simple.BLen) via a
deriving (Endian end a -> Weak (Endian end a)
(Endian end a -> Weak (Endian end a)) -> Weaken (Endian end a)
forall a. (a -> Weak a) -> Weaken a
forall (end :: Endianness) a.
Weaken a =>
Endian end a -> Weak (Endian end a)
$cweaken :: forall (end :: Endianness) a.
Weaken a =>
Endian end a -> Weak (Endian end a)
weaken :: Endian end a -> Weak (Endian end a)
Weaken, Weaken (Endian end a)
Weaken (Endian end a)
-> (Weak (Endian end a) -> Result (Endian end a))
-> Strengthen (Endian end a)
Weak (Endian end a) -> Result (Endian end a)
forall a. Weaken a -> (Weak a -> Result a) -> Strengthen a
forall {end :: Endianness} {a}.
Strengthen a =>
Weaken (Endian end a)
forall (end :: Endianness) a.
Strengthen a =>
Weak (Endian end a) -> Result (Endian end a)
$cstrengthen :: forall (end :: Endianness) a.
Strengthen a =>
Weak (Endian end a) -> Result (Endian end a)
strengthen :: Weak (Endian end a) -> Result (Endian end a)
Strengthen) via a
deriving ([Endian end a] -> Value
[Endian end a] -> Encoding
Endian end a -> Value
Endian end a -> Encoding
(Endian end a -> Value)
-> (Endian end a -> Encoding)
-> ([Endian end a] -> Value)
-> ([Endian end a] -> Encoding)
-> ToJSON (Endian end a)
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
forall (end :: Endianness) a. ToJSON a => [Endian end a] -> Value
forall (end :: Endianness) a.
ToJSON a =>
[Endian end a] -> Encoding
forall (end :: Endianness) a. ToJSON a => Endian end a -> Value
forall (end :: Endianness) a. ToJSON a => Endian end a -> Encoding
$ctoJSON :: forall (end :: Endianness) a. ToJSON a => Endian end a -> Value
toJSON :: Endian end a -> Value
$ctoEncoding :: forall (end :: Endianness) a. ToJSON a => Endian end a -> Encoding
toEncoding :: Endian end a -> Encoding
$ctoJSONList :: forall (end :: Endianness) a. ToJSON a => [Endian end a] -> Value
toJSONList :: [Endian end a] -> Value
$ctoEncodingList :: forall (end :: Endianness) a.
ToJSON a =>
[Endian end a] -> Encoding
toEncodingList :: [Endian end a] -> Encoding
ToJSON, Value -> Parser [Endian end a]
Value -> Parser (Endian end a)
(Value -> Parser (Endian end a))
-> (Value -> Parser [Endian end a]) -> FromJSON (Endian end a)
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
forall (end :: Endianness) a.
FromJSON a =>
Value -> Parser [Endian end a]
forall (end :: Endianness) a.
FromJSON a =>
Value -> Parser (Endian end a)
$cparseJSON :: forall (end :: Endianness) a.
FromJSON a =>
Value -> Parser (Endian end a)
parseJSON :: Value -> Parser (Endian end a)
$cparseJSONList :: forall (end :: Endianness) a.
FromJSON a =>
Value -> Parser [Endian end a]
parseJSONList :: Value -> Parser [Endian end a]
FromJSON) via a
deriving via Binreply Word8 instance Mason.Put (Endian end Word8)
deriving via Binreply Word8 instance Flatparse.Get (Endian end Word8)
deriving via Binreply Int8 instance Mason.Put (Endian end Int8)
deriving via Binreply Int8 instance Flatparse.Get (Endian end Int8)
flatparseParseEndianMin
:: Flatparse.Getter a -> Int -> Flatparse.Getter (Endian end a)
flatparseParseEndianMin :: forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter a
f Int
n =
a -> Endian end a
forall (end :: Endianness) a. a -> Endian end a
Endian (a -> Endian end a)
-> Getter a -> ParserT PureMode E (Endian end a)
forall (f :: Type -> Type) a b. Functor f => (a -> b) -> f a -> f b
<$> Getter a -> EBase -> Getter a
forall a. Getter a -> EBase -> Getter a
Flatparse.getEBase Getter a
f (Int -> EBase
Flatparse.ERanOut Int
n)
instance Bytezap.Put (Endian 'LE Word16) where put :: Endian 'LE Word16 -> Poke
put = Word16 -> Poke
BZ.w16le (Word16 -> Poke)
-> (Endian 'LE Word16 -> Word16) -> Endian 'LE Word16 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'LE Word16 -> Word16
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'LE Word16) where
get :: Getter (Endian 'LE Word16)
get = Getter Word16 -> Int -> Getter (Endian 'LE Word16)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Word16
forall (st :: ZeroBitType) e. ParserT st e Word16
FP.anyWord16le Int
2
instance Bytezap.Put (Endian 'BE Word16) where put :: Endian 'BE Word16 -> Poke
put = Word16 -> Poke
BZ.w16be (Word16 -> Poke)
-> (Endian 'BE Word16 -> Word16) -> Endian 'BE Word16 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'BE Word16 -> Word16
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'BE Word16) where
get :: Getter (Endian 'BE Word16)
get = Getter Word16 -> Int -> Getter (Endian 'BE Word16)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Word16
forall (st :: ZeroBitType) e. ParserT st e Word16
FP.anyWord16be Int
2
instance Bytezap.Put (Endian 'LE Word32) where put :: Endian 'LE Word32 -> Poke
put = Word32 -> Poke
BZ.w32le (Word32 -> Poke)
-> (Endian 'LE Word32 -> Word32) -> Endian 'LE Word32 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'LE Word32 -> Word32
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'LE Word32) where
get :: Getter (Endian 'LE Word32)
get = Getter Word32 -> Int -> Getter (Endian 'LE Word32)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Word32
forall (st :: ZeroBitType) e. ParserT st e Word32
FP.anyWord32le Int
4
instance Bytezap.Put (Endian 'BE Word32) where put :: Endian 'BE Word32 -> Poke
put = Word32 -> Poke
BZ.w32be (Word32 -> Poke)
-> (Endian 'BE Word32 -> Word32) -> Endian 'BE Word32 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'BE Word32 -> Word32
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'BE Word32) where
get :: Getter (Endian 'BE Word32)
get = Getter Word32 -> Int -> Getter (Endian 'BE Word32)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Word32
forall (st :: ZeroBitType) e. ParserT st e Word32
FP.anyWord32be Int
4
instance Bytezap.Put (Endian 'LE Word64) where put :: Endian 'LE Word64 -> Poke
put = Word64 -> Poke
BZ.w64le (Word64 -> Poke)
-> (Endian 'LE Word64 -> Word64) -> Endian 'LE Word64 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'LE Word64 -> Word64
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'LE Word64) where
get :: Getter (Endian 'LE Word64)
get = Getter Word64 -> Int -> Getter (Endian 'LE Word64)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Word64
forall (st :: ZeroBitType) e. ParserT st e Word64
FP.anyWord64le Int
8
instance Bytezap.Put (Endian 'BE Word64) where put :: Endian 'BE Word64 -> Poke
put = Word64 -> Poke
BZ.w64be (Word64 -> Poke)
-> (Endian 'BE Word64 -> Word64) -> Endian 'BE Word64 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'BE Word64 -> Word64
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'BE Word64) where
get :: Getter (Endian 'BE Word64)
get = Getter Word64 -> Int -> Getter (Endian 'BE Word64)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Word64
forall (st :: ZeroBitType) e. ParserT st e Word64
FP.anyWord64be Int
8
instance Bytezap.Put (Endian 'LE Int16) where put :: Endian 'LE Int16 -> Poke
put = Int16 -> Poke
BZ.i16le (Int16 -> Poke)
-> (Endian 'LE Int16 -> Int16) -> Endian 'LE Int16 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'LE Int16 -> Int16
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'LE Int16) where
get :: Getter (Endian 'LE Int16)
get = Getter Int16 -> Int -> Getter (Endian 'LE Int16)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Int16
forall (st :: ZeroBitType) e. ParserT st e Int16
FP.anyInt16le Int
2
instance Bytezap.Put (Endian 'BE Int16) where put :: Endian 'BE Int16 -> Poke
put = Int16 -> Poke
BZ.i16be (Int16 -> Poke)
-> (Endian 'BE Int16 -> Int16) -> Endian 'BE Int16 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'BE Int16 -> Int16
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'BE Int16) where
get :: Getter (Endian 'BE Int16)
get = Getter Int16 -> Int -> Getter (Endian 'BE Int16)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Int16
forall (st :: ZeroBitType) e. ParserT st e Int16
FP.anyInt16be Int
2
instance Bytezap.Put (Endian 'LE Int32) where put :: Endian 'LE Int32 -> Poke
put = Int32 -> Poke
BZ.i32le (Int32 -> Poke)
-> (Endian 'LE Int32 -> Int32) -> Endian 'LE Int32 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'LE Int32 -> Int32
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'LE Int32) where
get :: Getter (Endian 'LE Int32)
get = Getter Int32 -> Int -> Getter (Endian 'LE Int32)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Int32
forall (st :: ZeroBitType) e. ParserT st e Int32
FP.anyInt32le Int
4
instance Bytezap.Put (Endian 'BE Int32) where put :: Endian 'BE Int32 -> Poke
put = Int32 -> Poke
BZ.i32be (Int32 -> Poke)
-> (Endian 'BE Int32 -> Int32) -> Endian 'BE Int32 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'BE Int32 -> Int32
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'BE Int32) where
get :: Getter (Endian 'BE Int32)
get = Getter Int32 -> Int -> Getter (Endian 'BE Int32)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Int32
forall (st :: ZeroBitType) e. ParserT st e Int32
FP.anyInt32be Int
4
instance Bytezap.Put (Endian 'LE Int64) where put :: Endian 'LE Int64 -> Poke
put = Int64 -> Poke
BZ.i64le (Int64 -> Poke)
-> (Endian 'LE Int64 -> Int64) -> Endian 'LE Int64 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'LE Int64 -> Int64
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'LE Int64) where
get :: Getter (Endian 'LE Int64)
get = Getter Int64 -> Int -> Getter (Endian 'LE Int64)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Int64
forall (st :: ZeroBitType) e. ParserT st e Int64
FP.anyInt64le Int
8
instance Bytezap.Put (Endian 'BE Int64) where put :: Endian 'BE Int64 -> Poke
put = Int64 -> Poke
BZ.i64be (Int64 -> Poke)
-> (Endian 'BE Int64 -> Int64) -> Endian 'BE Int64 -> Poke
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Endian 'BE Int64 -> Int64
forall (end :: Endianness) a. Endian end a -> a
unEndian
instance Flatparse.Get (Endian 'BE Int64) where
get :: Getter (Endian 'BE Int64)
get = Getter Int64 -> Int -> Getter (Endian 'BE Int64)
forall a (end :: Endianness).
Getter a -> Int -> Getter (Endian end a)
flatparseParseEndianMin Getter Int64
forall (st :: ZeroBitType) e. ParserT st e Int64
FP.anyInt64be Int
8
type family IRep (isign :: ISign) (isize :: Natural) where
IRep 'U 8 = Word8
IRep 'I 8 = Int8
IRep 'U 16 = Word16
IRep 'I 16 = Int16
IRep 'U 32 = Word32
IRep 'I 32 = Int32
IRep 'U 64 = Word64
IRep 'I 64 = Int64
type family IMax (isign :: ISign) (n :: Natural) :: Natural where
IMax 'U n = 2^n-1
IMax 'I n = 2^(n-1)