hackage-db-2.1.2: Access cabal-install's Hackage database via Data.Map
Maintainersimons@cryp.to
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Distribution.Hackage.DB.MetaData

Description

Types and class instances for parsing the package.json files found in a 01-index.tar tarball from Hackage with Data.Aeson. These parsers mirror the exact structure of those files, but only a small part of it is actually of interest to anyone other than implementors of cabal-install. Everyone else will most likely prefer the functions oferred by Distribution.Hackage.DB.Parsed.

Synopsis

Documentation

parseMetaData :: ByteString -> MetaData Source #

Parse the package.json file found in a 01-index.tar tarball from Hackage with Data.Aeson. This function is a convenience wrapper around eitherDecode that throws an InvalidMetaFile exception to signal failure.

>>> :set -XOverloadedStrings
>>> parseMetaData "{\"signatures\":[],\"signed\":{\"_type\":\"Targets\",\"expires\":null,\"targets\":{\"<repo>/package/jailbreak-cabal-1.3.2.tar.gz\":{\"hashes\":{\"md5\":\"ba42b3e68323ccbeb3ac900cd68f9e90\",\"sha256\":\"212a8bbc3dfc748c4063282414a2726709d651322f3984c9989179d2352950f4\"},\"length\":2269}},\"version\":0}}"
MetaData {signed = SignedMetaData {version = 0, expires = Nothing, _type = "Targets", targets = fromList [("<repo>/package/jailbreak-cabal-1.3.2.tar.gz",TargetData {length = 2269, hashes = fromList [("md5","ba42b3e68323ccbeb3ac900cd68f9e90"),("sha256","212a8bbc3dfc748c4063282414a2726709d651322f3984c9989179d2352950f4")]})]}, signatures = []}

data MetaData Source #

Constructors

MetaData 

Instances

Instances details
Show MetaData Source # 
Instance details

Defined in Distribution.Hackage.DB.MetaData

Generic MetaData Source # 
Instance details

Defined in Distribution.Hackage.DB.MetaData

Associated Types

type Rep MetaData :: Type -> Type #

Methods

from :: MetaData -> Rep MetaData x #

to :: Rep MetaData x -> MetaData #

FromJSON MetaData Source # 
Instance details

Defined in Distribution.Hackage.DB.MetaData

type Rep MetaData Source # 
Instance details

Defined in Distribution.Hackage.DB.MetaData

type Rep MetaData = D1 ('MetaData "MetaData" "Distribution.Hackage.DB.MetaData" "hackage-db-2.1.2-KTaRG7zvIupOLpsM5PMEL" 'False) (C1 ('MetaCons "MetaData" 'PrefixI 'True) (S1 ('MetaSel ('Just "signed") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SignedMetaData) :*: S1 ('MetaSel ('Just "signatures") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String])))

data SignedMetaData Source #

data TargetData Source #

Constructors

TargetData 

Fields

Instances

Instances details
Show TargetData Source # 
Instance details

Defined in Distribution.Hackage.DB.MetaData

Generic TargetData Source # 
Instance details

Defined in Distribution.Hackage.DB.MetaData

Associated Types

type Rep TargetData :: Type -> Type #

FromJSON TargetData Source # 
Instance details

Defined in Distribution.Hackage.DB.MetaData

type Rep TargetData Source # 
Instance details

Defined in Distribution.Hackage.DB.MetaData

type Rep TargetData = D1 ('MetaData "TargetData" "Distribution.Hackage.DB.MetaData" "hackage-db-2.1.2-KTaRG7zvIupOLpsM5PMEL" 'False) (C1 ('MetaCons "TargetData" 'PrefixI 'True) (S1 ('MetaSel ('Just "length") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "hashes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map String String))))