module System.Nix.Store.Remote.Types.Query.Missing
  ( Missing(..)
  ) where

import Data.HashSet (HashSet)
import Data.Word (Word64)
import GHC.Generics (Generic)
import System.Nix.StorePath (StorePath)

-- | Result of @QueryMissing@ @StoreRequest@
data Missing = Missing
  { Missing -> HashSet StorePath
missingWillBuild :: HashSet StorePath -- ^ Paths that will be built
  , Missing -> HashSet StorePath
missingWillSubstitute :: HashSet StorePath -- ^ Paths that can be substituted from cache
  , Missing -> HashSet StorePath
missingUnknownPaths :: HashSet StorePath -- ^ Path w/o any information
  , Missing -> Word64
missingDownloadSize :: Word64 -- ^ Total size of packed NARs to download
  , Missing -> Word64
missingNarSize :: Word64 -- ^ Total size of NARs after unpacking
  }
  deriving (Missing -> Missing -> Bool
(Missing -> Missing -> Bool)
-> (Missing -> Missing -> Bool) -> Eq Missing
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Missing -> Missing -> Bool
== :: Missing -> Missing -> Bool
$c/= :: Missing -> Missing -> Bool
/= :: Missing -> Missing -> Bool
Eq, (forall x. Missing -> Rep Missing x)
-> (forall x. Rep Missing x -> Missing) -> Generic Missing
forall x. Rep Missing x -> Missing
forall x. Missing -> Rep Missing x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Missing -> Rep Missing x
from :: forall x. Missing -> Rep Missing x
$cto :: forall x. Rep Missing x -> Missing
to :: forall x. Rep Missing x -> Missing
Generic, Eq Missing
Eq Missing =>
(Missing -> Missing -> Ordering)
-> (Missing -> Missing -> Bool)
-> (Missing -> Missing -> Bool)
-> (Missing -> Missing -> Bool)
-> (Missing -> Missing -> Bool)
-> (Missing -> Missing -> Missing)
-> (Missing -> Missing -> Missing)
-> Ord Missing
Missing -> Missing -> Bool
Missing -> Missing -> Ordering
Missing -> Missing -> Missing
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Missing -> Missing -> Ordering
compare :: Missing -> Missing -> Ordering
$c< :: Missing -> Missing -> Bool
< :: Missing -> Missing -> Bool
$c<= :: Missing -> Missing -> Bool
<= :: Missing -> Missing -> Bool
$c> :: Missing -> Missing -> Bool
> :: Missing -> Missing -> Bool
$c>= :: Missing -> Missing -> Bool
>= :: Missing -> Missing -> Bool
$cmax :: Missing -> Missing -> Missing
max :: Missing -> Missing -> Missing
$cmin :: Missing -> Missing -> Missing
min :: Missing -> Missing -> Missing
Ord, Int -> Missing -> ShowS
[Missing] -> ShowS
Missing -> String
(Int -> Missing -> ShowS)
-> (Missing -> String) -> ([Missing] -> ShowS) -> Show Missing
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Missing -> ShowS
showsPrec :: Int -> Missing -> ShowS
$cshow :: Missing -> String
show :: Missing -> String
$cshowList :: [Missing] -> ShowS
showList :: [Missing] -> ShowS
Show)