Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Machine integers: sized integers & naturals with explicit endianness type tags for serialization.
Documentation
Machine integer sign.
Signed integers use two's complement for representation.
Instances
Data ISign Source # | |
Defined in Binrep.Type.Int gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ISign -> c ISign # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ISign # dataTypeOf :: ISign -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ISign) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ISign) # gmapT :: (forall b. Data b => b -> b) -> ISign -> ISign # gmapQl :: (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 # gmapQ :: (forall d. Data d => d -> u) -> ISign -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ISign -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ISign -> m ISign # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ISign -> m ISign # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ISign -> m ISign # | |
Generic ISign Source # | |
Show ISign Source # | |
Eq ISign Source # | |
type Rep ISign Source # | |
newtype Endian (end :: Endianness) a Source #
A type tagged with the endianness (byte order) to use when serializing.
Intended to be used to wrap existing types which do not otherwise expose
endianness, namely the machine integers Int32
, Word64
etc. As such, it
derives various relevant type classes using the wrapped type.
May be considered a restricted Tagged
(from the tagged
package).
Instances
IsCBLen (Endian end a :: Type) Source # | |
FromJSON a => FromJSON (Endian end a) Source # | |
ToJSON a => ToJSON (Endian end a) Source # | |
Defined in Binrep.Type.Int | |
(Typeable end, Data a) => Data (Endian end a) Source # | |
Defined in Binrep.Type.Int gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Endian end a -> c (Endian end a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Endian end a) # toConstr :: Endian end a -> Constr # dataTypeOf :: Endian end a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Endian end a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Endian end a)) # gmapT :: (forall b. Data b => b -> b) -> Endian end a -> Endian end a # gmapQl :: (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 # gmapQ :: (forall d. Data d => d -> u) -> Endian end a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Endian end a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Endian end a -> m (Endian end a) # | |
Bounded a => Bounded (Endian end a) Source # | |
Enum a => Enum (Endian end a) Source # | |
Defined in Binrep.Type.Int succ :: Endian end a -> Endian end a # pred :: Endian end a -> Endian end a # toEnum :: Int -> Endian end a # fromEnum :: Endian end a -> Int # enumFrom :: Endian end a -> [Endian end a] # enumFromThen :: Endian end a -> Endian end a -> [Endian end a] # enumFromTo :: Endian end a -> Endian end a -> [Endian end a] # enumFromThenTo :: Endian end a -> Endian end a -> Endian end a -> [Endian end a] # | |
Generic (Endian end a) Source # | |
Num a => Num (Endian end a) Source # | |
Defined in Binrep.Type.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 # negate :: Endian end a -> Endian end a # abs :: Endian end a -> Endian end a # signum :: Endian end a -> Endian end a # fromInteger :: Integer -> Endian end a # | |
Integral a => Integral (Endian end a) Source # | |
Defined in Binrep.Type.Int quot :: Endian end a -> Endian end a -> Endian end a # rem :: Endian end a -> Endian end a -> Endian end a # div :: Endian end a -> Endian end a -> Endian end a # mod :: Endian end a -> Endian end a -> Endian end a # quotRem :: 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) # | |
Real a => Real (Endian end a) Source # | |
Defined in Binrep.Type.Int toRational :: Endian end a -> Rational # | |
Show a => Show (Endian end a) Source # | |
BLen a => BLen (Endian end a) Source # | |
Get (Endian 'BE Int16) Source # | |
Get (Endian 'BE Int32) Source # | |
Get (Endian 'BE Int64) Source # | |
Get (Endian 'BE Word16) Source # | |
Get (Endian 'BE Word32) Source # | |
Get (Endian 'BE Word64) Source # | |
Get (Endian 'LE Int16) Source # | |
Get (Endian 'LE Int32) Source # | |
Get (Endian 'LE Int64) Source # | |
Get (Endian 'LE Word16) Source # | |
Get (Endian 'LE Word32) Source # | |
Get (Endian 'LE Word64) Source # | |
Get (Endian end Int8) Source # | Endianness doesn't matter for single bytes. |
Get (Endian end Word8) Source # | Endianness doesn't matter for single bytes. |
Put (Endian 'BE Int16) Source # | |
Put (Endian 'BE Int32) Source # | |
Put (Endian 'BE Int64) Source # | |
Put (Endian 'BE Word16) Source # | |
Put (Endian 'BE Word32) Source # | |
Put (Endian 'BE Word64) Source # | |
Put (Endian 'LE Int16) Source # | |
Put (Endian 'LE Int32) Source # | |
Put (Endian 'LE Int64) Source # | |
Put (Endian 'LE Word16) Source # | |
Put (Endian 'LE Word32) Source # | |
Put (Endian 'LE Word64) Source # | |
Put (Endian end Int8) Source # | Endianness doesn't matter for single bytes. |
Put (Endian end Word8) Source # | Endianness doesn't matter for single bytes. |
Prefix a => Prefix (Endian end a) Source # | |
Eq a => Eq (Endian end a) Source # | |
Ord a => Ord (Endian end a) Source # | |
Defined in Binrep.Type.Int | |
Strengthen a => Strengthen (Endian end a) Source # | |
Defined in Binrep.Type.Int | |
Weaken a => Weaken (Endian end a) Source # | |
type CBLen (Endian end a :: Type) Source # | |
Defined in Binrep.Type.Int | |
type Rep (Endian end a) Source # | |
Defined in Binrep.Type.Int | |
type Max (Endian end a) Source # | |
Defined in Binrep.Type.Prefix | |
type Weak (Endian end a) Source # | |
Defined in Binrep.Type.Int |
flatparseParseEndianMin :: Getter a -> Int -> Getter (Endian end a) Source #
Ask for a minimum length before running the given parser and wrapping the
result in Endian
.