stack-1.6.5: The Haskell Tool Stack

Safe HaskellNone
LanguageHaskell2010

Stack.Types.PackageIdentifier

Description

Package identifier (name-version).

Synopsis

Documentation

data PackageIdentifier #

A pkg-ver combination.

Constructors

PackageIdentifier 

Fields

Instances

Eq PackageIdentifier # 
Data PackageIdentifier # 

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 # 
Show PackageIdentifier # 
Generic PackageIdentifier # 
NFData PackageIdentifier # 

Methods

rnf :: PackageIdentifier -> () #

Hashable PackageIdentifier # 
ToJSON PackageIdentifier # 
FromJSON PackageIdentifier # 
Store PackageIdentifier # 
type Rep PackageIdentifier # 
type Rep PackageIdentifier = D1 * (MetaData "PackageIdentifier" "Stack.Types.PackageIdentifier" "stack-1.6.5-92UXe1Ql8caLvEWYlnTKFx" 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 # 

data PackageIdentifierRevision #

A PackageIdentifier combined with optionally specified Hackage cabal file revision.

Instances

Eq PackageIdentifierRevision # 
Data PackageIdentifierRevision # 

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 # 
Show PackageIdentifierRevision # 
Generic PackageIdentifierRevision # 
NFData PackageIdentifierRevision # 
Hashable PackageIdentifierRevision # 
ToJSON PackageIdentifierRevision # 
FromJSON PackageIdentifierRevision # 
Store PackageIdentifierRevision # 
type Rep PackageIdentifierRevision # 
type Rep PackageIdentifierRevision = D1 * (MetaData "PackageIdentifierRevision" "Stack.Types.PackageIdentifier" "stack-1.6.5-92UXe1Ql8caLvEWYlnTKFx" 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 #

A cryptographic hash of a Cabal file.

Instances

Eq CabalHash # 
Data CabalHash # 

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 # 
Show CabalHash # 
Generic CabalHash # 

Associated Types

type Rep CabalHash :: * -> * #

NFData CabalHash # 

Methods

rnf :: CabalHash -> () #

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

mkCabalHashFromSHA256 :: Text -> Either SomeException CabalHash #

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

computeCabalHash :: ByteString -> CabalHash #

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

data CabalFileInfo #

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 # 
Data CabalFileInfo # 

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 # 
Show CabalFileInfo # 
Generic CabalFileInfo # 

Associated Types

type Rep CabalFileInfo :: * -> * #

NFData CabalFileInfo # 

Methods

rnf :: CabalFileInfo -> () #

Hashable CabalFileInfo # 
Store CabalFileInfo # 
type Rep CabalFileInfo # 

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

Convert from a package identifier to a tuple.

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

Convert from a tuple to a package identifier.

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

Convenient way to parse a package identifier from a Text.

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

Convenience function for parsing from a String.

packageIdentifierParser :: Parser PackageIdentifier #

A parser for a package-version pair.

packageIdentifierString :: PackageIdentifier -> String #

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

packageIdentifierRevisionString :: PackageIdentifierRevision -> String #

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

packageIdentifierText :: PackageIdentifier -> Text #

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

data StaticSHA256 #

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

Instances

Eq StaticSHA256 # 
Data StaticSHA256 # 

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 # 
Show StaticSHA256 # 
Generic StaticSHA256 # 

Associated Types

type Rep StaticSHA256 :: * -> * #

NFData StaticSHA256 # 

Methods

rnf :: StaticSHA256 -> () #

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

mkStaticSHA256FromText :: Text -> Either SomeException StaticSHA256 #

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

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

Generate a StaticSHA256 value from the contents of a file.

staticSHA256ToText :: StaticSHA256 -> Text #

Convert a StaticSHA256 into a base16-encoded SHA256 hash.

staticSHA256ToBase16 :: StaticSHA256 -> ByteString #

Convert a StaticSHA256 into a base16-encoded SHA256 hash.