binrep-0.8.0: Encode precise binary representations directly in types
Safe HaskellSafe-Inferred
LanguageGHC2021

Binrep.Util.ByteOrder

Synopsis

Documentation

data ByteOrder #

Byte ordering.

Constructors

BigEndian

most-significant-byte occurs in lowest address.

LittleEndian

least-significant-byte occurs in lowest address.

Instances

Instances details
Bounded ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Enum ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Generic ByteOrder 
Instance details

Defined in GHC.ByteOrder

Associated Types

type Rep ByteOrder :: Type -> Type #

Read ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Show ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Eq ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Ord ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

type Rep ByteOrder

Since: base-4.15.0.0

Instance details

Defined in GHC.ByteOrder

type Rep ByteOrder = D1 ('MetaData "ByteOrder" "GHC.ByteOrder" "base" 'False) (C1 ('MetaCons "BigEndian" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LittleEndian" 'PrefixI 'False) (U1 :: Type -> Type))

newtype ByteOrdered (end :: ByteOrder) a #

Constructors

ByteOrdered 

Fields

Instances

Instances details
IsCBLen a => IsCBLen (ByteOrdered end a :: Type) Source # 
Instance details

Defined in Binrep.CBLen

Associated Types

type CBLen (ByteOrdered end a) :: Natural Source #

Enum a => Enum (ByteOrdered end a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Methods

succ :: ByteOrdered end a -> ByteOrdered end a #

pred :: ByteOrdered end a -> ByteOrdered end a #

toEnum :: Int -> ByteOrdered end a #

fromEnum :: ByteOrdered end a -> Int #

enumFrom :: ByteOrdered end a -> [ByteOrdered end a] #

enumFromThen :: ByteOrdered end a -> ByteOrdered end a -> [ByteOrdered end a] #

enumFromTo :: ByteOrdered end a -> ByteOrdered end a -> [ByteOrdered end a] #

enumFromThenTo :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a -> [ByteOrdered end a] #

Num a => Num (ByteOrdered end a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Methods

(+) :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

(-) :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

(*) :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

negate :: ByteOrdered end a -> ByteOrdered end a #

abs :: ByteOrdered end a -> ByteOrdered end a #

signum :: ByteOrdered end a -> ByteOrdered end a #

fromInteger :: Integer -> ByteOrdered end a #

Integral a => Integral (ByteOrdered end a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Methods

quot :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

rem :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

div :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

mod :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

quotRem :: ByteOrdered end a -> ByteOrdered end a -> (ByteOrdered end a, ByteOrdered end a) #

divMod :: ByteOrdered end a -> ByteOrdered end a -> (ByteOrdered end a, ByteOrdered end a) #

toInteger :: ByteOrdered end a -> Integer #

Real a => Real (ByteOrdered end a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Methods

toRational :: ByteOrdered end a -> Rational #

Show a => Show (ByteOrdered end a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Methods

showsPrec :: Int -> ByteOrdered end a -> ShowS #

show :: ByteOrdered end a -> String #

showList :: [ByteOrdered end a] -> ShowS #

KnownNat (CBLen a) => BLen (ByteOrdered end a) Source # 
Instance details

Defined in Binrep.BLen

Methods

blen :: ByteOrdered end a -> Int Source #

(Prim' a, ByteSwap a) => Get (ByteOrdered 'BigEndian a) Source # 
Instance details

Defined in Binrep.Get

(Prim' a, ByteSwap a) => Get (ByteOrdered 'LittleEndian a) Source # 
Instance details

Defined in Binrep.Get

Get (ByteOrdered end Int8) Source #

Byte order is irrelevant for 8-bit (1-byte) words.

Instance details

Defined in Binrep.Get

Methods

get :: Getter (ByteOrdered end Int8) Source #

Get (ByteOrdered end Word8) Source #

Byte order is irrelevant for 8-bit (1-byte) words.

Instance details

Defined in Binrep.Get

(Prim' a, ByteSwap a) => GetC (ByteOrdered 'BigEndian a) Source # 
Instance details

Defined in Binrep.Get.Struct

(Prim' a, ByteSwap a) => GetC (ByteOrdered 'LittleEndian a) Source # 
Instance details

Defined in Binrep.Get.Struct

GetC (ByteOrdered end Int8) Source # 
Instance details

Defined in Binrep.Get.Struct

GetC (ByteOrdered end Word8) Source # 
Instance details

Defined in Binrep.Get.Struct

(Prim' a, ByteSwap a) => Put (ByteOrdered 'BigEndian a) Source # 
Instance details

Defined in Binrep.Put

(Prim' a, ByteSwap a) => Put (ByteOrdered 'LittleEndian a) Source # 
Instance details

Defined in Binrep.Put

Put (ByteOrdered end Int8) Source #

Byte order is irrelevant for 8-bit (1-byte) words.

Instance details

Defined in Binrep.Put

Methods

put :: ByteOrdered end Int8 -> Putter Source #

Put (ByteOrdered end Word8) Source #

Byte order is irrelevant for 8-bit (1-byte) words.

Instance details

Defined in Binrep.Put

Methods

put :: ByteOrdered end Word8 -> Putter Source #

(Prim' a, ByteSwap a) => PutC (ByteOrdered 'BigEndian a) Source # 
Instance details

Defined in Binrep.Put.Struct

(Prim' a, ByteSwap a) => PutC (ByteOrdered 'LittleEndian a) Source # 
Instance details

Defined in Binrep.Put.Struct

PutC (ByteOrdered end Int8) Source #

Byte order is irrelevant for 8-bit (1-byte) words.

Instance details

Defined in Binrep.Put.Struct

Methods

putC :: ByteOrdered end Int8 -> PutterC Source #

PutC (ByteOrdered end Word8) Source #

Byte order is irrelevant for 8-bit (1-byte) words.

Instance details

Defined in Binrep.Put.Struct

Prefix a => Prefix (ByteOrdered end a) Source # 
Instance details

Defined in Binrep.Util.Prefix

Associated Types

type Max (ByteOrdered end a) :: Natural Source #

Methods

lenToPfx :: Int -> ByteOrdered end a Source #

pfxToLen :: ByteOrdered end a -> Int Source #

(Prim' a, ByteSwap a) => Prim' (ByteOrdered 'BigEndian a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Associated Types

type SizeOf (ByteOrdered 'BigEndian a) :: Natural #

Prim' a => Prim' (ByteOrdered 'LittleEndian a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Associated Types

type SizeOf (ByteOrdered 'LittleEndian a) :: Natural #

Eq a => Eq (ByteOrdered end a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Methods

(==) :: ByteOrdered end a -> ByteOrdered end a -> Bool #

(/=) :: ByteOrdered end a -> ByteOrdered end a -> Bool #

Ord a => Ord (ByteOrdered end a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Methods

compare :: ByteOrdered end a -> ByteOrdered end a -> Ordering #

(<) :: ByteOrdered end a -> ByteOrdered end a -> Bool #

(<=) :: ByteOrdered end a -> ByteOrdered end a -> Bool #

(>) :: ByteOrdered end a -> ByteOrdered end a -> Bool #

(>=) :: ByteOrdered end a -> ByteOrdered end a -> Bool #

max :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

min :: ByteOrdered end a -> ByteOrdered end a -> ByteOrdered end a #

(Prim a, ByteSwap a) => Prim (ByteOrdered 'BigEndian a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Prim a => Prim (ByteOrdered 'LittleEndian a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

Strengthen a => Strengthen (ByteOrdered end a) Source # 
Instance details

Defined in Binrep.Util.ByteOrder

Methods

strengthen :: Weak (ByteOrdered end a) -> Result (ByteOrdered end a) #

Weaken a => Weaken (ByteOrdered end a) Source # 
Instance details

Defined in Binrep.Util.ByteOrder

Associated Types

type Weak (ByteOrdered end a) #

Methods

weaken :: ByteOrdered end a -> Weak (ByteOrdered end a) #

type CBLen (ByteOrdered end a :: Type) Source # 
Instance details

Defined in Binrep.CBLen

type CBLen (ByteOrdered end a :: Type) = CBLen a
type Max (ByteOrdered end a) Source #

Byte ordering doesn't change how prefixes work.

Instance details

Defined in Binrep.Util.Prefix

type Max (ByteOrdered end a) = Max a
type SizeOf (ByteOrdered 'BigEndian a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

type SizeOf (ByteOrdered 'LittleEndian a) 
Instance details

Defined in Raehik.Compat.Data.Primitive.Types.Endian

type Weak (ByteOrdered end a) Source # 
Instance details

Defined in Binrep.Util.ByteOrder

type Weak (ByteOrdered end a) = Weak a

Orphan instances

Strengthen a => Strengthen (ByteOrdered end a) Source # 
Instance details

Methods

strengthen :: Weak (ByteOrdered end a) -> Result (ByteOrdered end a) #

Weaken a => Weaken (ByteOrdered end a) Source # 
Instance details

Associated Types

type Weak (ByteOrdered end a) #

Methods

weaken :: ByteOrdered end a -> Weak (ByteOrdered end a) #