binrep-0.3.0: Encode precise binary representations directly in types
Safe HaskellSafe-Inferred
LanguageHaskell2010

Binrep.Example.Tar

Synopsis

Documentation

newtype TarNat n Source #

The naturals in tars are sized octal ASCII digit strings that end with a null byte (and may start with leading ASCII zeroes). The size includes the terminating null, so you get n-1 digits. What a farce.

Don't use this constructor directly! The size must be checked to ensure it fits.

Constructors

TarNat 

Fields

Instances

Instances details
Generic (TarNat n) Source # 
Instance details

Defined in Binrep.Example.Tar

Associated Types

type Rep (TarNat n) :: Type -> Type #

Methods

from :: TarNat n -> Rep (TarNat n) x #

to :: Rep (TarNat n) x -> TarNat n #

Show (TarNat n) Source # 
Instance details

Defined in Binrep.Example.Tar

Methods

showsPrec :: Int -> TarNat n -> ShowS #

show :: TarNat n -> String #

showList :: [TarNat n] -> ShowS #

KnownNat n => BLen (TarNat n) Source # 
Instance details

Defined in Binrep.Example.Tar

Associated Types

type CBLen (TarNat n) :: Natural Source #

Methods

blen :: TarNat n -> BLenT Source #

KnownNat n => Get (TarNat n) Source # 
Instance details

Defined in Binrep.Example.Tar

Methods

get :: Getter (TarNat n) Source #

KnownNat n => Put (TarNat n) Source #

No need to check for underflow etc. as TarNat guarantees good sizing.

Instance details

Defined in Binrep.Example.Tar

Methods

put :: TarNat n -> Builder Source #

Eq (TarNat n) Source # 
Instance details

Defined in Binrep.Example.Tar

Methods

(==) :: TarNat n -> TarNat n -> Bool #

(/=) :: TarNat n -> TarNat n -> Bool #

type Rep (TarNat n) Source # 
Instance details

Defined in Binrep.Example.Tar

type Rep (TarNat n) = D1 ('MetaData "TarNat" "Binrep.Example.Tar" "binrep-0.3.0-inplace" 'True) (C1 ('MetaCons "TarNat" 'PrefixI 'True) (S1 ('MetaSel ('Just "getTarNat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AsciiNat 8))))
type CBLen (TarNat n) Source # 
Instance details

Defined in Binrep.Example.Tar

type CBLen (TarNat n) = n

data Tar Source #

Instances

Instances details
Generic Tar Source # 
Instance details

Defined in Binrep.Example.Tar

Associated Types

type Rep Tar :: Type -> Type #

Methods

from :: Tar -> Rep Tar x #

to :: Rep Tar x -> Tar #

Show Tar Source # 
Instance details

Defined in Binrep.Example.Tar

Methods

showsPrec :: Int -> Tar -> ShowS #

show :: Tar -> String #

showList :: [Tar] -> ShowS #

BLen Tar Source # 
Instance details

Defined in Binrep.Example.Tar

Associated Types

type CBLen Tar :: Natural Source #

Methods

blen :: Tar -> BLenT Source #

Get Tar Source # 
Instance details

Defined in Binrep.Example.Tar

Methods

get :: Getter Tar Source #

Put Tar Source # 
Instance details

Defined in Binrep.Example.Tar

Methods

put :: Tar -> Builder Source #

Eq Tar Source # 
Instance details

Defined in Binrep.Example.Tar

Methods

(==) :: Tar -> Tar -> Bool #

(/=) :: Tar -> Tar -> Bool #

type Rep Tar Source # 
Instance details

Defined in Binrep.Example.Tar

type Rep Tar = D1 ('MetaData "Tar" "Binrep.Example.Tar" "binrep-0.3.0-inplace" 'False) (C1 ('MetaCons "Tar" 'PrefixI 'True) ((S1 ('MetaSel ('Just "tarFileName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NullPadded 100 BS)) :*: (S1 ('MetaSel ('Just "tarFileMode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TarNat 8)) :*: S1 ('MetaSel ('Just "tarFileUIDOwner") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TarNat 8)))) :*: (S1 ('MetaSel ('Just "tarFileUIDGroup") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TarNat 8)) :*: (S1 ('MetaSel ('Just "tarFileFileSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TarNat 12)) :*: S1 ('MetaSel ('Just "tarFileLastMod") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TarNat 12))))))
type CBLen Tar Source # 
Instance details

Defined in Binrep.Example.Tar

type CBLen Tar = TypeError ('Text "No CBLen associated family instance defined for " :<>: 'ShowType Tar) :: Natural