feat: basic structure
This commit is contained in:
32
internal/driver/driver.go
Normal file
32
internal/driver/driver.go
Normal file
@ -0,0 +1,32 @@
|
||||
package driver
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
type Driver interface {
|
||||
Reader
|
||||
Writer
|
||||
Other
|
||||
}
|
||||
|
||||
type Reader interface {
|
||||
File(ctx context.Context, path string) (*FileInfo, error)
|
||||
List(ctx context.Context, path string) ([]FileInfo, error)
|
||||
Link(ctx context.Context, args LinkArgs) (*Link, error)
|
||||
}
|
||||
|
||||
type Writer interface {
|
||||
MakeDir(ctx context.Context, path string) error
|
||||
Move(ctx context.Context, src, dst string) error
|
||||
Rename(ctx context.Context, src, dst string) error
|
||||
Copy(ctx context.Context, src, dst string) error
|
||||
Remove(ctx context.Context, path string) error
|
||||
Put(ctx context.Context, stream FileStream, parent string) error
|
||||
}
|
||||
|
||||
type Other interface {
|
||||
Init(ctx context.Context) error
|
||||
Update(ctx context.Context) error
|
||||
Drop(ctx context.Context) error
|
||||
}
|
Reference in New Issue
Block a user