Copyright | (c) 2021 berberman |
---|---|
License | MIT |
Maintainer | berberman <berberman@yandex.com> |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Types used in this program.
Synopsis
- newtype Version = Version Text
- newtype SHA256 = SHA256 Text
- type NixExpr = Text
- data VersionChange = VersionChange {}
- newtype WithPackageKey k = WithPackageKey (k, PackageKey)
- data Core = Core
- data VersionSource
- data NvcheckerResult = NvcheckerResult {}
- data NixFetcher (k :: Prefetch)
- data Prefetch
- = Fresh
- | Prefetched
- type family PrefetchResult (k :: Prefetch) where ...
- type PackageName = Text
- type PackageFetcher = Version -> NixFetcher Fresh
- data Package = Package {}
- newtype PackageKey = PackageKey PackageName
Common types
Package version
Instances
Eq Version Source # | |
Ord Version Source # | |
Show Version Source # | |
IsString Version Source # | |
Defined in NvFetcher.Types fromString :: String -> Version # | |
Generic Version Source # | |
Semigroup Version Source # | |
Monoid Version Source # | |
Hashable Version Source # | |
Defined in NvFetcher.Types | |
ToJSON Version Source # | |
Defined in NvFetcher.Types | |
FromJSON Version Source # | |
Binary Version Source # | |
NFData Version Source # | |
Defined in NvFetcher.Types | |
ToNixExpr Version Source # | |
type Rep Version Source # | |
Defined in NvFetcher.Types |
SHA 256 sum
data VersionChange Source #
Version change of a package
>>>
VersionChange "foo" Nothing "2.3.3"
foo: ∅ → 2.3.3
>>>
VersionChange "bar" (Just "2.2.2") "2.3.3"
bar: 2.2.2 → 2.3.3
Instances
Eq VersionChange Source # | |
Defined in NvFetcher.Types (==) :: VersionChange -> VersionChange -> Bool # (/=) :: VersionChange -> VersionChange -> Bool # | |
Show VersionChange Source # | |
Defined in NvFetcher.Types showsPrec :: Int -> VersionChange -> ShowS # show :: VersionChange -> String # showList :: [VersionChange] -> ShowS # |
newtype WithPackageKey k Source #
Decorate a rule's key with PackageKey
WithPackageKey (k, PackageKey) |
Instances
Eq k => Eq (WithPackageKey k) Source # | |
Defined in NvFetcher.Types (==) :: WithPackageKey k -> WithPackageKey k -> Bool # (/=) :: WithPackageKey k -> WithPackageKey k -> Bool # | |
Show k => Show (WithPackageKey k) Source # | |
Defined in NvFetcher.Types showsPrec :: Int -> WithPackageKey k -> ShowS # show :: WithPackageKey k -> String # showList :: [WithPackageKey k] -> ShowS # | |
Hashable k => Hashable (WithPackageKey k) Source # | |
Defined in NvFetcher.Types hashWithSalt :: Int -> WithPackageKey k -> Int # hash :: WithPackageKey k -> Int # | |
Binary k => Binary (WithPackageKey k) Source # | |
Defined in NvFetcher.Types put :: WithPackageKey k -> Put # get :: Get (WithPackageKey k) # putList :: [WithPackageKey k] -> Put # | |
NFData k => NFData (WithPackageKey k) Source # | |
Defined in NvFetcher.Types rnf :: WithPackageKey k -> () # | |
type RuleResult (WithPackageKey k) Source # | |
Defined in NvFetcher.Types |
The key type of nvfetcher rule. See NvFetcher.Core
Nvchecker types
data VersionSource Source #
The input of nvchecker
Instances
data NvcheckerResult Source #
The result of running nvchecker
Instances
Nix fetcher types
data NixFetcher (k :: Prefetch) Source #
If the package is prefetched, then we can obtain the SHA256
FetchGit | |
| |
FetchUrl | |
|
Instances
type family PrefetchResult (k :: Prefetch) where ... Source #
Prefetched fetchers hold hashes
Package types
type PackageName = Text Source #
Package name, used in generating nix expr
type PackageFetcher = Version -> NixFetcher Fresh Source #
How to create package source fetcher given a version
A package is defined with:
- its name
- how to track its version
- how to fetch it as we have the version
INVARIANT: Version
passed to PackageFetcher
MUST be used textually,
i.e. can only be concatenated with other strings,
in case we can't check the equality between fetcher functions.
newtype PackageKey Source #
Package key is the name of a package. We use this type to index packages.