aboutsummaryrefslogtreecommitdiff
path: root/Types.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Types.hs')
-rw-r--r--Types.hs24
1 files changed, 24 insertions, 0 deletions
diff --git a/Types.hs b/Types.hs
new file mode 100644
index 000000000..2308b6fde
--- /dev/null
+++ b/Types.hs
@@ -0,0 +1,24 @@
+{- git-annex data types
+ - -}
+
+module Types where
+
+type Key = String
+
+data Backend = Backend {
+ -- name of this backend
+ name :: String,
+ -- converts a filename to a key
+ getKey :: GitRepo -> FilePath -> IO (Maybe Key),
+ -- stores a file's contents to a key
+ storeFileKey :: GitRepo -> FilePath -> Key -> IO (Bool),
+ -- retrieves a key's contents to a file
+ retrieveKeyFile :: IO Key -> FilePath -> IO (Bool)
+}
+
+data GitRepo = GitRepo {
+ top :: FilePath,
+ remotes :: [GitRepo],
+ backends :: [Backend]
+}
+