1package lfs23import (4 "context"5 "io"6)78// DownloadCallback gets called for every requested LFS object to process its content9type DownloadCallback func(p Pointer, content io.ReadCloser, objectError error) error1011// UploadCallback gets called for every requested LFS object to provide its content12type UploadCallback func(p Pointer, objectError error) (io.ReadCloser, error)1314// Client is a Git LFS client to communicate with a LFS source API.15type Client interface {16 Download(ctx context.Context, objects []Pointer, callback DownloadCallback) error17 Upload(ctx context.Context, objects []Pointer, callback UploadCallback) error18}1920// NewClient returns a new Git LFS client.21func NewClient(e Endpoint) Client {22 if e.Scheme == "http" || e.Scheme == "https" {23 return newHTTPClient(e)24 }25 // TODO: support ssh client26 return nil27}