module Unison.Cli.MergeTypes
( MergeSource (..),
MergeTarget,
MergeSourceAndTarget (..),
MergeSourceOrTarget (..),
)
where
import Unison.Codebase.Editor.RemoteRepo (ReadShareLooseCode)
import Unison.Project (ProjectAndBranch, ProjectBranchName, ProjectName)
data MergeSource
= MergeSource'LocalProjectBranch !(ProjectAndBranch ProjectName ProjectBranchName)
| MergeSource'RemoteProjectBranch !(ProjectAndBranch ProjectName ProjectBranchName)
| MergeSource'RemoteLooseCode !ReadShareLooseCode
type MergeTarget =
ProjectAndBranch ProjectName ProjectBranchName
data MergeSourceAndTarget = MergeSourceAndTarget
{ MergeSourceAndTarget -> MergeTarget
alice :: !MergeTarget,
MergeSourceAndTarget -> MergeSource
bob :: !MergeSource
}
data MergeSourceOrTarget
= MergeSourceOrTarget'Source !MergeSource
| MergeSourceOrTarget'Target !MergeTarget