Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Data null-padded to a given length.
Synopsis
- data NullPad (n :: Natural)
- type NullPadded n a = Refined (NullPad n) a
Documentation
data NullPad (n :: Natural) Source #
Instances
(BLen a, KnownNat n) => Predicate (NullPad n :: Type) a Source # | |
Defined in Binrep.Type.NullPadded | |
IsCBLen (NullPadded n a :: Type) Source # | |
Defined in Binrep.Type.NullPadded type CBLen (NullPadded n a) :: Natural Source # | |
KnownNat n => BLen (NullPadded n a) Source # | |
Defined in Binrep.Type.NullPadded blen :: NullPadded n a -> Int Source # | |
(Get a, KnownNat n) => Get (NullPadded n a) Source # | |
Defined in Binrep.Type.NullPadded get :: Getter (NullPadded n a) Source # | |
(BLen a, KnownNat n, Put a) => Put (NullPadded n a) Source # | |
Defined in Binrep.Type.NullPadded put :: NullPadded n a -> Putter Source # | |
(BLen a, KnownNat n, PutC a) => PutC (NullPadded n a) Source # | |
Defined in Binrep.Type.NullPadded putC :: NullPadded n a -> PutterC Source # | |
type CBLen (NullPadded n a :: Type) Source # | |
Defined in Binrep.Type.NullPadded |
type NullPadded n a = Refined (NullPad n) a Source #
A type which is to be null-padded to a given total length.
Given some a ::
, it is guaranteed thatNullPadded
n a
blen
a<=
natValInt
@n
thus
natValInt
@n-
blen
a>=
0
That is, the serialized stored data will not be longer than the total length.
The binrep instances are careful not to construct bytestrings unnecessarily.