{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE UndecidableInstances #-}
module Charon.Backend.Default.BackendArgs
( BackendArgs (..),
)
where
import Charon.Backend.Data (Backend)
import Charon.Data.PathData (PathData)
import Charon.Data.PathType (PathTypeW)
import Charon.Data.Paths (PathI, PathIndex (TrashEntryOriginalPath, TrashHome))
import Charon.Data.Timestamp (Timestamp)
import Charon.Prelude
data BackendArgs m pd = MkBackendArgs
{
forall (m :: * -> *) pd. BackendArgs m pd -> Backend
backend :: Backend,
forall (m :: * -> *) pd.
BackendArgs m pd
-> Timestamp
-> PathI 'TrashHome
-> PathI 'TrashEntryOriginalPath
-> m (pd, PathTypeW)
makePathData ::
Timestamp ->
PathI TrashHome ->
PathI TrashEntryOriginalPath ->
m (pd, PathTypeW),
forall (m :: * -> *) pd.
BackendArgs m pd -> PathI 'TrashHome -> pd -> m PathData
toCorePathData :: PathI TrashHome -> pd -> m PathData,
forall (m :: * -> *) pd. BackendArgs m pd -> PathData -> pd
fromCorePathData :: PathData -> pd
}
makeFieldLabelsNoPrefix ''BackendArgs