| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
Binrep.Type.Int
Description
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 Methods 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 Methods 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 Methods 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 Methods (+) :: 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 Methods 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 Methods 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.