1
0
mirror of https://github.com/restic/restic.git synced 2024-07-06 09:20:53 +02:00
restic/backend/interface.go

78 lines
951 B
Go
Raw Normal View History

2014-09-23 22:39:12 +02:00
package backend
2015-02-11 19:55:23 +01:00
import (
"errors"
"io"
)
2014-10-07 23:19:26 +02:00
2014-09-23 22:39:12 +02:00
type Type string
const (
Data Type = "data"
2014-09-23 22:39:12 +02:00
Key = "key"
Lock = "lock"
Snapshot = "snapshot"
Tree = "tree"
)
2014-10-04 16:49:39 +02:00
const (
BackendVersion = 1
)
2014-10-07 23:19:26 +02:00
var (
ErrAlreadyPresent = errors.New("blob is already present in backend")
)
type Blob interface {
io.WriteCloser
ID() (ID, error)
2015-02-15 23:46:21 +01:00
Size() uint
}
2014-12-21 17:02:49 +01:00
type Lister interface {
List(Type) (IDs, error)
}
2014-12-21 17:02:49 +01:00
type Getter interface {
2014-09-23 22:39:12 +02:00
Get(Type, ID) ([]byte, error)
2015-02-11 19:55:23 +01:00
GetReader(Type, ID) (io.ReadCloser, error)
2014-12-21 15:57:41 +01:00
}
2014-12-21 17:02:49 +01:00
type Creater interface {
Create(Type) (Blob, error)
2014-12-21 15:57:41 +01:00
}
2014-12-21 17:02:49 +01:00
type Tester interface {
2014-09-23 22:39:12 +02:00
Test(Type, ID) (bool, error)
2014-12-21 15:57:41 +01:00
}
2014-12-21 17:02:49 +01:00
type Remover interface {
2014-09-23 22:39:12 +02:00
Remove(Type, ID) error
2014-12-21 15:57:41 +01:00
}
2014-09-23 22:39:12 +02:00
2014-12-21 17:02:49 +01:00
type Closer interface {
2014-10-04 19:20:15 +02:00
Close() error
2014-12-21 15:57:41 +01:00
}
2014-10-04 19:20:15 +02:00
2014-12-21 17:02:49 +01:00
type Deleter interface {
2014-12-21 15:57:41 +01:00
Delete() error
}
2014-12-21 17:02:49 +01:00
type Locationer interface {
2014-09-23 22:39:12 +02:00
Location() string
}
2014-12-21 15:57:41 +01:00
type IDer interface {
ID() ID
}
2014-12-21 17:02:49 +01:00
type Backend interface {
Lister
Getter
Creater
Tester
Remover
Closer
IDer
2014-12-21 15:57:41 +01:00
}