func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	if h.FileSystem == nil {
		http.Error(w, "webdav: no filesystem available", http.StatusInternalServerError)
		return
	}
	b := backend{h.FileSystem}
	hh := internal.Handler{&b}
	hh.ServeHTTP(w, r)
}
ServeHTTP implements http.Handler.
package webdav
import (
	"encoding/xml"
	"io"
	"net/http"
	"os"
	"strconv"
	"github.com/emersion/go-webdav/internal"
)
type FileSystem interface {
	Open(name string) (io.ReadCloser, error)
	Stat(name string) (*FileInfo, error)
	Readdir(name string, recursive bool) ([]FileInfo, error)
	Create(name string) (io.WriteCloser, error)
	RemoveAll(name string) error
	Mkdir(name string) error
	Copy(name, dest string, recursive, overwrite bool) (created bool, err error)
	MoveAll(name, dest string, overwrite bool) (created bool, err error)
}
type Handler struct {
	FileSystem FileSystem
}