diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2018-03-11 19:38:27 +0100 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2018-03-11 19:41:33 +0100 |
| commit | d23b4052c0866698b14ac13ac98581d9f5440a9b (patch) | |
| tree | 51c93559594f8fd5136fd51b7397a30415ea93aa /field_time.go | |
| parent | aaf61ac55e18a04fd68b9b6ee4fd4fce49659eeb (diff) | |
| download | go-schwift-d23b4052c0866698b14ac13ac98581d9f5440a9b.tar.gz | |
revamp the Headers API
1. Move common methods of AccountHeaders, ContainerHeaders,
ObjectHeaders into a base type Headers.
2. Fold Headers into RequestOptions to remove one of the two optional
arguments on request methods. The new Headers.ToOpts() method
offers a nice experience for users passing Headers to request
methods.
The Update() methods keep the explicit Headers argument since the
Headers argument is not optional there.
The only downside is that we lose a bit of type-safety because
RequestOptions takes any Headers instance, so e.g. ContainerHeaders
could be passed to Object.Upload(). I believe the benefits outweigh
this problem.
Diffstat (limited to 'field_time.go')
| -rw-r--r-- | field_time.go | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/field_time.go b/field_time.go index 2506f3c..d367f68 100644 --- a/field_time.go +++ b/field_time.go @@ -28,25 +28,25 @@ import ( //FieldHTTPTimeReadonly is a helper type that provides type-safe access to a //readonly Swift header whose value is a HTTP timestamp like this: // -// Mon, 02 Jan 2006 15:04:05 GMT +// Mon, 02 Jan 2006 15:04:05 GMT // //It cannot be directly constructed, but methods on the Headers types return //this type. For example: // -// //suppose you have: -// hdr, err := obj.Headers() +// //suppose you have: +// hdr, err := obj.Headers() // -// //you could do this: -// time, err := time.Parse(time.RFC1123, hdr.Get("Last-Modified")) +// //you could do this: +// time, err := time.Parse(time.RFC1123, hdr.Get("Last-Modified")) // -// //or you can just: -// time := hdr.UpdatedAt().Get() +// //or you can just: +// time := hdr.UpdatedAt().Get() // //Don't worry about the missing `err` in the last line. When the header fails //to parse, Object.Headers() already returns the corresponding //MalformedHeaderError. type FieldHTTPTimeReadonly struct { - h headerInterface + h Headers k string } @@ -83,21 +83,21 @@ func (f FieldHTTPTimeReadonly) validate() error { //header whose value is a UNIX timestamp. It cannot be directly constructed, //but methods on the Headers types return this type. For example: // -// //suppose you have: -// hdr, err := obj.Headers() +// //suppose you have: +// hdr, err := obj.Headers() // -// //you could do all this: -// sec, err := strconv.ParseFloat(hdr.Get("X-Delete-At"), 64) -// time := time.Unix(0, int64(1e9 * sec)) +// //you could do all this: +// sec, err := strconv.ParseFloat(hdr.Get("X-Delete-At"), 64) +// time := time.Unix(0, int64(1e9 * sec)) // -// //or you can just: -// time := hdr.ExpiresAt().Get() +// //or you can just: +// time := hdr.ExpiresAt().Get() // //Don't worry about the missing `err` in the last line. When the header fails //to parse, Object.Headers() already returns the corresponding //MalformedHeaderError. type FieldUnixTime struct { - h headerInterface + h Headers k string } @@ -151,7 +151,7 @@ func (f FieldUnixTime) validate() error { //FieldUnixTimeReadonly is a readonly variant of FieldUnixTime. It is used for //fields that cannot be set by the client. type FieldUnixTimeReadonly struct { - h headerInterface + h Headers k string } |
