webdav: move ConditionalMatch to webdav.go

It's not an XML element.
This commit is contained in:
Simon Ser 2024-01-18 13:37:21 +01:00
parent b821d8c1ea
commit ced348a58f
2 changed files with 23 additions and 21 deletions

View File

@ -30,24 +30,3 @@ type groupMembership struct {
XMLName xml.Name `xml:"DAV: group-membership"` XMLName xml.Name `xml:"DAV: group-membership"`
Hrefs []internal.Href `xml:"href"` Hrefs []internal.Href `xml:"href"`
} }
// ConditionalMatch represents the value of a conditional header
// according to RFC 2068 section 14.25 and RFC 2068 section 14.26
// The (optional) value can either be a wildcard or an ETag.
type ConditionalMatch string
func (val ConditionalMatch) IsSet() bool {
return val != ""
}
func (val ConditionalMatch) IsWildcard() bool {
return val == "*"
}
func (val ConditionalMatch) ETag() (string, error) {
var e internal.ETag
if err := e.UnmarshalText([]byte(val)); err != nil {
return "", err
}
return string(e), nil
}

View File

@ -5,6 +5,8 @@ package webdav
import ( import (
"time" "time"
"github.com/emersion/go-webdav/internal"
) )
// FileInfo holds information about a WebDAV file. // FileInfo holds information about a WebDAV file.
@ -25,3 +27,24 @@ type CopyOptions struct {
type MoveOptions struct { type MoveOptions struct {
NoOverwrite bool NoOverwrite bool
} }
// ConditionalMatch represents the value of a conditional header
// according to RFC 2068 section 14.25 and RFC 2068 section 14.26
// The (optional) value can either be a wildcard or an ETag.
type ConditionalMatch string
func (val ConditionalMatch) IsSet() bool {
return val != ""
}
func (val ConditionalMatch) IsWildcard() bool {
return val == "*"
}
func (val ConditionalMatch) ETag() (string, error) {
var e internal.ETag
if err := e.UnmarshalText([]byte(val)); err != nil {
return "", err
}
return string(e), nil
}