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

Binrep.Type.NullPadded

Description

Data null-padded to a given length.

Synopsis

Documentation

data NullPad (n :: Natural) Source #

Instances

Instances details
(BLen a, KnownNat n) => Predicate (NullPad n :: Type) a Source #

Assert that term will fit.

Instance details

Defined in Binrep.Type.NullPadded

IsCBLen (NullPadded n a :: Type) Source # 
Instance details

Defined in Binrep.Type.NullPadded

Associated Types

type CBLen (NullPadded n a) :: Natural Source #

KnownNat n => BLen (NullPadded n a) Source # 
Instance details

Defined in Binrep.Type.NullPadded

Methods

blen :: NullPadded n a -> Int Source #

(Get a, KnownNat n) => Get (NullPadded n a) Source # 
Instance details

Defined in Binrep.Type.NullPadded

Methods

get :: Getter (NullPadded n a) Source #

(KnownNat n, Get a) => GetC (NullPadded n a) Source #

Run a Getter a isolated to n bytes.

Instance details

Defined in Binrep.Type.NullPadded

Methods

getC :: GetterC (NullPadded n a) Source #

(BLen a, KnownNat n, Put a) => Put (NullPadded n a) Source # 
Instance details

Defined in Binrep.Type.NullPadded

Methods

put :: NullPadded n a -> Putter Source #

(BLen a, KnownNat n, Put a) => PutC (NullPadded n a) Source # 
Instance details

Defined in Binrep.Type.NullPadded

Methods

putC :: NullPadded n a -> PutterC Source #

type CBLen (NullPadded n a :: Type) Source # 
Instance details

Defined in Binrep.Type.NullPadded

type CBLen (NullPadded n a :: Type) = n

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 :: NullPadded n a, it is guaranteed that

blen a <= natValInt @n

thus

natValInt @n - blen a >= 0

That is, the serialized stored data will not be longer than the total length.