Files
ozu.io/storage/store.go
Jim Myhrberg 1486110d2e Noramlize Store interface
Instead of exposing a key/value get/set style interface, design the
interface around the actions that are actually required.

This is a first step towards supporting adding a Store to support
Google Cloud's Datastore.
2016-12-04 19:16:57 +00:00

24 lines
588 B
Go

package storage
import "errors"
// ErrNotFound is the default error message when data is not found.
var ErrNotFound = errors.New("not found")
// Store defines a standard interface for storage
type Store interface {
Close() error
Create(UID []byte, URL []byte) (*Record, error)
FindByUID(UID []byte) (*Record, error)
FindByURL(URL []byte) (*Record, error)
DeleteByUID(UID []byte) (*Record, error)
DeleteByURL(URL []byte) (*Record, error)
NextSequence() (int, error)
}
// Record provides a standard way to refer to a shortened URL.
type Record struct {
UID []byte
URL []byte
}