28 lines
504 B
Go
28 lines
504 B
Go
// Package cas provides a content-accessible storage implementation
|
|
package cas
|
|
|
|
import (
|
|
"io"
|
|
"time"
|
|
)
|
|
|
|
// Content is an item's content.
|
|
type Content interface {
|
|
io.Reader
|
|
io.Seeker
|
|
io.Closer
|
|
}
|
|
|
|
// Meta is an item's metadata.
|
|
type Meta interface {
|
|
Size() int64
|
|
ModTime() time.Time
|
|
}
|
|
|
|
// Store is a CAS store.
|
|
type Store interface {
|
|
GetOrCreate(tag, item string, create func(io.Writer) error) (content Content, meta Meta, err error)
|
|
Tags() (tags []string, err error)
|
|
Remove(tag string) error
|
|
}
|