aboutsummaryrefslogtreecommitdiffstats
path: root/bridge/core/interfaces.go
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/core/interfaces.go')
-rw-r--r--bridge/core/interfaces.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/bridge/core/interfaces.go b/bridge/core/interfaces.go
new file mode 100644
index 00000000..5336e7a8
--- /dev/null
+++ b/bridge/core/interfaces.go
@@ -0,0 +1,29 @@
+package core
+
+import (
+ "github.com/MichaelMure/git-bug/cache"
+ "github.com/MichaelMure/git-bug/repository"
+)
+
+type Configuration map[string]string
+
+type Importer interface {
+ ImportAll(repo *cache.RepoCache, conf Configuration) error
+ Import(repo *cache.RepoCache, conf Configuration, id string) error
+}
+
+type Exporter interface {
+ ExportAll(repo *cache.RepoCache, conf Configuration) error
+ Export(repo *cache.RepoCache, conf Configuration, id string) error
+}
+
+type BridgeImpl interface {
+ Name() string
+
+ // Configure handle the user interaction and return a key/value configuration
+ // for future use
+ Configure(repo repository.RepoCommon) (Configuration, error)
+
+ Importer() Importer
+ Exporter() Exporter
+}