packages feed

hix-0.7.0: lib/Hix/Managed/Data/ProjectState.hs

module Hix.Managed.Data.ProjectState where

import Distribution.Pretty (Pretty (pretty))
import Text.PrettyPrint (hang, ($+$))

import Hix.Class.EncodeNix (EncodeNix)
import Hix.Data.Overrides (Overrides)
import Hix.Managed.Data.Envs (Envs)
import Hix.Managed.Data.Mutable (MutableBounds, MutableVersions)
import Hix.Managed.Data.Packages (Packages)

data ProjectState =
  ProjectState {
    bounds :: Packages MutableBounds,
    versions :: Envs MutableVersions,
    initial :: Envs MutableVersions,
    overrides :: Envs Overrides,
    resolving :: Bool
  }
  deriving stock (Eq, Show, Generic)
  deriving anyclass (EncodeNix)

instance Pretty ProjectState where
  pretty ProjectState {..} =
    hang "bounds:" 2 (pretty bounds) $+$
    hang "versions:" 2 (pretty versions) $+$
    hang "initial:" 2 (pretty initial) $+$
    hang "overrides:" 2 (pretty overrides)

instance Default ProjectState where
  def = ProjectState {bounds = mempty, versions = mempty, overrides = mempty, initial = mempty, resolving = False}