mirror of
https://github.com/restic/restic.git
synced 2026-08-03 04:32:17 +00:00
move Backend interface to backend package
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
package backend
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/restic/restic/internal/errors"
|
||||
)
|
||||
|
||||
// FileType is the type of a file in the backend.
|
||||
type FileType uint8
|
||||
|
||||
// These are the different data types a backend can store.
|
||||
const (
|
||||
PackFile FileType = 1 + iota
|
||||
KeyFile
|
||||
LockFile
|
||||
SnapshotFile
|
||||
IndexFile
|
||||
ConfigFile
|
||||
)
|
||||
|
||||
func (t FileType) String() string {
|
||||
s := "invalid"
|
||||
switch t {
|
||||
case PackFile:
|
||||
// Spelled "data" instead of "pack" for historical reasons.
|
||||
s = "data"
|
||||
case KeyFile:
|
||||
s = "key"
|
||||
case LockFile:
|
||||
s = "lock"
|
||||
case SnapshotFile:
|
||||
s = "snapshot"
|
||||
case IndexFile:
|
||||
s = "index"
|
||||
case ConfigFile:
|
||||
s = "config"
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// Handle is used to store and access data in a backend.
|
||||
type Handle struct {
|
||||
Type FileType
|
||||
IsMetadata bool
|
||||
Name string
|
||||
}
|
||||
|
||||
func (h Handle) String() string {
|
||||
name := h.Name
|
||||
if len(name) > 10 {
|
||||
name = name[:10]
|
||||
}
|
||||
return fmt.Sprintf("<%s/%s>", h.Type, name)
|
||||
}
|
||||
|
||||
// Valid returns an error if h is not valid.
|
||||
func (h Handle) Valid() error {
|
||||
switch h.Type {
|
||||
case PackFile:
|
||||
case KeyFile:
|
||||
case LockFile:
|
||||
case SnapshotFile:
|
||||
case IndexFile:
|
||||
case ConfigFile:
|
||||
default:
|
||||
return errors.Errorf("invalid Type %d", h.Type)
|
||||
}
|
||||
|
||||
if h.Type == ConfigFile {
|
||||
return nil
|
||||
}
|
||||
|
||||
if h.Name == "" {
|
||||
return errors.New("invalid Name")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user