module Git.Sample ( SampleRepository(..), sampleFactory ) where
import Control.Applicative
import Control.Monad.Catch
import Control.Monad.Reader.Class
import Control.Monad.Trans.Reader (ReaderT, runReaderT)
import qualified Git
data Void
instance Show Void where
show _ = undefined
instance Ord Void where
_ `compare` _ = undefined
instance Eq Void where
_ == _ = undefined
instance Git.IsOid Void where
renderOid _ = undefined
data SampleRepository = SampleRepository
class HasSampleRepository env where
getSampleRepository :: env -> SampleRepository
instance HasSampleRepository SampleRepository where
getSampleRepository = id
instance HasSampleRepository (e, SampleRepository) where
getSampleRepository = snd
instance (Applicative m, MonadThrow m,
MonadReader env m, HasSampleRepository env)
=> Git.MonadGit SampleRepository m where
type Oid SampleRepository = Void
data Tree SampleRepository = Void
data Options SampleRepository = Options
facts = return Git.RepositoryFacts
{ Git.hasSymbolicReferences = True }
getRepository = getSampleRepository <$> ask
closeRepository = undefined
deleteRepository = undefined
parseOid = undefined
lookupReference = undefined
createReference = undefined
updateReference = undefined
deleteReference = undefined
sourceReferences = undefined
lookupObject = undefined
existsObject = undefined
sourceObjects = undefined
lookupCommit = undefined
lookupTree = undefined
lookupBlob = undefined
lookupTag = undefined
newTreeBuilder = undefined
treeOid = undefined
treeEntry = undefined
sourceTreeEntries = undefined
hashContents = undefined
createBlob = undefined
createCommit = undefined
createTag = undefined
diffContentsWithTree = undefined
sampleFactory :: (MonadReader env m, HasSampleRepository env)
=> Git.RepositoryFactory (ReaderT SampleRepository m) m
SampleRepository
sampleFactory = Git.RepositoryFactory
{ Git.openRepository = undefined
, Git.runRepository = flip runReaderT
}