diff --git a/internal/client.go b/internal/client.go index 7c42e41..6ecb703 100644 --- a/internal/client.go +++ b/internal/client.go @@ -10,47 +10,6 @@ import ( "path" ) -// Depth indicates whether a request applies to the resource's members. It's -// defined in RFC 4918 section 10.2. -type Depth int - -const ( - // DepthZero indicates that the request applies only to the resource. - DepthZero Depth = 0 - // DepthOne indicates that the request applies to the resource and its - // internal members only. - DepthOne Depth = 1 - // DepthInfinity indicates that the request applies to the resource and all - // of its members. - DepthInfinity Depth = -1 -) - -// ParseDepth parses a Depth header. -func ParseDepth(s string) (Depth, error) { - switch s { - case "0": - return DepthZero, nil - case "1": - return DepthOne, nil - case "infinity": - return DepthInfinity, nil - } - return 0, fmt.Errorf("webdav: invalid Depth value") -} - -// String formats the depth. -func (d Depth) String() string { - switch d { - case DepthZero: - return "0" - case DepthOne: - return "1" - case DepthInfinity: - return "infinity" - } - panic("webdav: invalid Depth value") -} - type Client struct { http *http.Client endpoint *url.URL diff --git a/internal/internal.go b/internal/internal.go new file mode 100644 index 0000000..cebbbfa --- /dev/null +++ b/internal/internal.go @@ -0,0 +1,47 @@ +// Package internal provides low-level helpers for WebDAV clients and servers. +package internal + +import ( + "fmt" +) + +// Depth indicates whether a request applies to the resource's members. It's +// defined in RFC 4918 section 10.2. +type Depth int + +const ( + // DepthZero indicates that the request applies only to the resource. + DepthZero Depth = 0 + // DepthOne indicates that the request applies to the resource and its + // internal members only. + DepthOne Depth = 1 + // DepthInfinity indicates that the request applies to the resource and all + // of its members. + DepthInfinity Depth = -1 +) + +// ParseDepth parses a Depth header. +func ParseDepth(s string) (Depth, error) { + switch s { + case "0": + return DepthZero, nil + case "1": + return DepthOne, nil + case "infinity": + return DepthInfinity, nil + } + return 0, fmt.Errorf("webdav: invalid Depth value") +} + +// String formats the depth. +func (d Depth) String() string { + switch d { + case DepthZero: + return "0" + case DepthOne: + return "1" + case DepthInfinity: + return "infinity" + } + panic("webdav: invalid Depth value") +}