stack-1.7.1: The Haskell Tool Stack

Safe HaskellNone
LanguageHaskell2010

Stack.Types.PackageIdentifier

Description

Package identifier (name-version).

Synopsis

Documentation

data PackageIdentifier Source #

A pkg-ver combination.

Constructors

PackageIdentifier 

Fields

Instances

Eq PackageIdentifier Source # 
Data PackageIdentifier Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PackageIdentifier -> c PackageIdentifier #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PackageIdentifier #

toConstr :: PackageIdentifier -> Constr #

dataTypeOf :: PackageIdentifier -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c PackageIdentifier) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PackageIdentifier) #

gmapT :: (forall b. Data b => b -> b) -> PackageIdentifier -> PackageIdentifier #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PackageIdentifier -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PackageIdentifier -> r #

gmapQ :: (forall d. Data d => d -> u) -> PackageIdentifier -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PackageIdentifier -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PackageIdentifier -> m PackageIdentifier #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageIdentifier -> m PackageIdentifier #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageIdentifier -> m PackageIdentifier #

Ord PackageIdentifier Source # 
Show PackageIdentifier Source # 
Generic PackageIdentifier Source # 
NFData PackageIdentifier Source # 

Methods

rnf :: PackageIdentifier -> () #

Hashable PackageIdentifier Source # 
ToJSON PackageIdentifier Source # 
FromJSON PackageIdentifier Source # 
Display PackageIdentifier Source # 
Store PackageIdentifier Source # 
type Rep PackageIdentifier Source # 
type Rep PackageIdentifier = D1 * (MetaData "PackageIdentifier" "Stack.Types.PackageIdentifier" "stack-1.7.1-8x9NSKj6gz3B3M9RWkyZVt" False) (C1 * (MetaCons "PackageIdentifier" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "packageIdentifierName") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * PackageName)) (S1 * (MetaSel (Just Symbol "packageIdentifierVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Version))))
type Ann PackageIdentifier Source # 

data PackageIdentifierRevision Source #

A PackageIdentifier combined with optionally specified Hackage cabal file revision.

Instances

Eq PackageIdentifierRevision Source # 
Data PackageIdentifierRevision Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PackageIdentifierRevision -> c PackageIdentifierRevision #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PackageIdentifierRevision #

toConstr :: PackageIdentifierRevision -> Constr #

dataTypeOf :: PackageIdentifierRevision -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c PackageIdentifierRevision) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PackageIdentifierRevision) #

gmapT :: (forall b. Data b => b -> b) -> PackageIdentifierRevision -> PackageIdentifierRevision #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PackageIdentifierRevision -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PackageIdentifierRevision -> r #

gmapQ :: (forall d. Data d => d -> u) -> PackageIdentifierRevision -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PackageIdentifierRevision -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PackageIdentifierRevision -> m PackageIdentifierRevision #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageIdentifierRevision -> m PackageIdentifierRevision #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PackageIdentifierRevision -> m PackageIdentifierRevision #

Ord PackageIdentifierRevision Source # 
Show PackageIdentifierRevision Source # 
Generic PackageIdentifierRevision Source # 
NFData PackageIdentifierRevision Source # 
Hashable PackageIdentifierRevision Source # 
ToJSON PackageIdentifierRevision Source # 
FromJSON PackageIdentifierRevision Source # 
Store PackageIdentifierRevision Source # 
type Rep PackageIdentifierRevision Source # 
type Rep PackageIdentifierRevision = D1 * (MetaData "PackageIdentifierRevision" "Stack.Types.PackageIdentifier" "stack-1.7.1-8x9NSKj6gz3B3M9RWkyZVt" False) (C1 * (MetaCons "PackageIdentifierRevision" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "pirIdent") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * PackageIdentifier)) (S1 * (MetaSel (Just Symbol "pirRevision") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * CabalFileInfo))))

data CabalHash Source #

A cryptographic hash of a Cabal file.

Instances

Eq CabalHash Source # 
Data CabalHash Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CabalHash -> c CabalHash #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CabalHash #

toConstr :: CabalHash -> Constr #

dataTypeOf :: CabalHash -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c CabalHash) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CabalHash) #

gmapT :: (forall b. Data b => b -> b) -> CabalHash -> CabalHash #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CabalHash -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CabalHash -> r #

gmapQ :: (forall d. Data d => d -> u) -> CabalHash -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> CabalHash -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> CabalHash -> m CabalHash #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CabalHash -> m CabalHash #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CabalHash -> m CabalHash #

Ord CabalHash Source # 
Show CabalHash Source # 
Generic CabalHash Source # 

Associated Types

type Rep CabalHash :: * -> * #

NFData CabalHash Source # 

Methods

rnf :: CabalHash -> () #

Hashable CabalHash Source # 
Store CabalHash Source # 
type Rep CabalHash Source # 
type Rep CabalHash = D1 * (MetaData "CabalHash" "Stack.Types.PackageIdentifier" "stack-1.7.1-8x9NSKj6gz3B3M9RWkyZVt" True) (C1 * (MetaCons "CabalHash" PrefixI True) (S1 * (MetaSel (Just Symbol "unCabalHash") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * StaticSHA256)))

mkCabalHashFromSHA256 :: Text -> Either SomeException CabalHash Source #

Generate a CabalHash value from a base16-encoded SHA256 hash.

computeCabalHash :: ByteString -> CabalHash Source #

Compute a CabalHash value from a cabal file's contents.

data CabalFileInfo Source #

Information on the contents of a cabal file

Constructors

CFILatest

Take the latest revision of the cabal file available. This isn't reproducible at all, but the running assumption (not necessarily true) is that cabal file revisions do not change semantics of the build.

CFIHash !(Maybe Int) !CabalHash

Identify by contents of the cabal file itself

CFIRevision !Word

Identify by revision number, with 0 being the original and counting upward.

Instances

Eq CabalFileInfo Source # 
Data CabalFileInfo Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CabalFileInfo -> c CabalFileInfo #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CabalFileInfo #

toConstr :: CabalFileInfo -> Constr #

dataTypeOf :: CabalFileInfo -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c CabalFileInfo) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CabalFileInfo) #

gmapT :: (forall b. Data b => b -> b) -> CabalFileInfo -> CabalFileInfo #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CabalFileInfo -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CabalFileInfo -> r #

gmapQ :: (forall d. Data d => d -> u) -> CabalFileInfo -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> CabalFileInfo -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> CabalFileInfo -> m CabalFileInfo #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CabalFileInfo -> m CabalFileInfo #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CabalFileInfo -> m CabalFileInfo #

Ord CabalFileInfo Source # 
Show CabalFileInfo Source # 
Generic CabalFileInfo Source # 

Associated Types

type Rep CabalFileInfo :: * -> * #

NFData CabalFileInfo Source # 

Methods

rnf :: CabalFileInfo -> () #

Hashable CabalFileInfo Source # 
Store CabalFileInfo Source # 
type Rep CabalFileInfo Source # 

toTuple :: PackageIdentifier -> (PackageName, Version) Source #

Convert from a package identifier to a tuple.

fromTuple :: (PackageName, Version) -> PackageIdentifier Source #

Convert from a tuple to a package identifier.

parsePackageIdentifier :: MonadThrow m => Text -> m PackageIdentifier Source #

Convenient way to parse a package identifier from a Text.

parsePackageIdentifierFromString :: MonadThrow m => String -> m PackageIdentifier Source #

Convenience function for parsing from a String.

packageIdentifierParser :: Parser PackageIdentifier Source #

A parser for a package-version pair.

packageIdentifierString :: PackageIdentifier -> String Source #

Get a string representation of the package identifier; name-ver.

packageIdentifierRevisionString :: PackageIdentifierRevision -> String Source #

Get a string representation of the package identifier with revision; name-ver[@hashtype:hash[,size]].

packageIdentifierText :: PackageIdentifier -> Text Source #

Get a Text representation of the package identifier; name-ver.

data StaticSHA256 Source #

A SHA256 hash, stored in a static size for more efficient serialization with store.

Instances

Eq StaticSHA256 Source # 
Data StaticSHA256 Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> StaticSHA256 -> c StaticSHA256 #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c StaticSHA256 #

toConstr :: StaticSHA256 -> Constr #

dataTypeOf :: StaticSHA256 -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c StaticSHA256) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c StaticSHA256) #

gmapT :: (forall b. Data b => b -> b) -> StaticSHA256 -> StaticSHA256 #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> StaticSHA256 -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> StaticSHA256 -> r #

gmapQ :: (forall d. Data d => d -> u) -> StaticSHA256 -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> StaticSHA256 -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> StaticSHA256 -> m StaticSHA256 #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> StaticSHA256 -> m StaticSHA256 #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> StaticSHA256 -> m StaticSHA256 #

Ord StaticSHA256 Source # 
Show StaticSHA256 Source # 
Generic StaticSHA256 Source # 

Associated Types

type Rep StaticSHA256 :: * -> * #

NFData StaticSHA256 Source # 

Methods

rnf :: StaticSHA256 -> () #

Hashable StaticSHA256 Source # 
Store StaticSHA256 Source # 
type Rep StaticSHA256 Source # 
type Rep StaticSHA256 = D1 * (MetaData "StaticSHA256" "Stack.Types.PackageIdentifier" "stack-1.7.1-8x9NSKj6gz3B3M9RWkyZVt" True) (C1 * (MetaCons "StaticSHA256" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Bytes32)))

mkStaticSHA256FromText :: Text -> Either SomeException StaticSHA256 Source #

Generate a StaticSHA256 value from a base16-encoded SHA256 hash.

mkStaticSHA256FromFile :: MonadIO m => Path Abs File -> m StaticSHA256 Source #

Generate a StaticSHA256 value from the contents of a file.

staticSHA256ToText :: StaticSHA256 -> Text Source #

Convert a StaticSHA256 into a base16-encoded SHA256 hash.

staticSHA256ToBase16 :: StaticSHA256 -> ByteString Source #

Convert a StaticSHA256 into a base16-encoded SHA256 hash.