Extract method for Objects; struct tags: json -> mapstructure
diff --git a/openstack/objectstorage/v1/containers/results.go b/openstack/objectstorage/v1/containers/results.go
index c2c25a8..4c27ec6 100644
--- a/openstack/objectstorage/v1/containers/results.go
+++ b/openstack/objectstorage/v1/containers/results.go
@@ -99,12 +99,12 @@
 
 // GetHeader represents the headers returned in the response from a Get request.
 type GetHeader struct {
-	BytesUsed     int64     `json:"X-Account-Bytes-Used"`
-	ContentLength int64     `json:"Content-Length"`
-	ContentType   string    `json:"Content-Type"`
-	Date          time.Time `mapstructure:"-" json:"-"`
-	ObjectCount   int64     `json:"X-Account-Object-Count"`
-	TransID       string    `json:"X-Trans-Id"`
+	BytesUsed     int64     `mapstructure:"X-Account-Bytes-Used"`
+	ContentLength int64     `mapstructure:"Content-Length"`
+	ContentType   string    `mapstructure:"Content-Type"`
+	Date          time.Time `mapstructure:"-"`
+	ObjectCount   int64     `mapstructure:"X-Account-Object-Count"`
+	TransID       string    `mapstructure:"X-Trans-Id"`
 }
 
 // GetResult represents the result of a get operation.
@@ -116,6 +116,9 @@
 // a map of headers, call the ExtractHeader method on the GetResult.
 func (gr GetResult) Extract() (GetHeader, error) {
 	var gh GetHeader
+	if gr.Err != nil {
+		return gh, gr.Err
+	}
 
 	if err := mapstructure.Decode(gr.Header, &gh); err != nil {
 		return gh, err
@@ -150,10 +153,10 @@
 
 // CreateHeader represents the headers returned in the response from a Create request.
 type CreateHeader struct {
-	ContentLength int64     `json:"Content-Length"`
-	ContentType   string    `json:"Content-Type"`
-	Date          time.Time `mapstructure:"-" json:"-"`
-	TransID       string    `json:"X-Trans-Id"`
+	ContentLength int64     `mapstructure:"Content-Length"`
+	ContentType   string    `mapstructure:"Content-Type"`
+	Date          time.Time `mapstructure:"-"`
+	TransID       string    `mapstructure:"X-Trans-Id"`
 }
 
 // CreateResult represents the result of a create operation. To extract the
@@ -167,6 +170,9 @@
 // a map of headers, call the ExtractHeader method on the CreateResult.
 func (cr CreateResult) Extract() (CreateHeader, error) {
 	var ch CreateHeader
+	if cr.Err != nil {
+		return ch, cr.Err
+	}
 
 	if err := mapstructure.Decode(cr.Header, &ch); err != nil {
 		return ch, err
@@ -185,10 +191,10 @@
 
 // UpdateHeader represents the headers returned in the response from a Update request.
 type UpdateHeader struct {
-	ContentLength int64     `json:"Content-Length"`
-	ContentType   string    `json:"Content-Type"`
-	Date          time.Time `mapstructure:"-" json:"-"`
-	TransID       string    `json:"X-Trans-Id"`
+	ContentLength int64     `mapstructure:"Content-Length"`
+	ContentType   string    `mapstructure:"Content-Type"`
+	Date          time.Time `mapstructure:"-"`
+	TransID       string    `mapstructure:"X-Trans-Id"`
 }
 
 // UpdateResult represents the result of an update operation. To extract the
@@ -202,6 +208,9 @@
 // a map of headers, call the ExtractHeader method on the UpdateResult.
 func (ur UpdateResult) Extract() (UpdateHeader, error) {
 	var uh UpdateHeader
+	if ur.Err != nil {
+		return uh, ur.Err
+	}
 
 	if err := mapstructure.Decode(ur.Header, &uh); err != nil {
 		return uh, err
@@ -220,10 +229,10 @@
 
 // DeleteHeader represents the headers returned in the response from a Delete request.
 type DeleteHeader struct {
-	ContentLength int64     `json:"Content-Length"`
-	ContentType   string    `json:"Content-Type"`
-	Date          time.Time `mapstructure:"-" json:"-"`
-	TransID       string    `json:"X-Trans-Id"`
+	ContentLength int64     `mapstructure:"Content-Length"`
+	ContentType   string    `mapstructure:"Content-Type"`
+	Date          time.Time `mapstructure:"-"`
+	TransID       string    `mapstructure:"X-Trans-Id"`
 }
 
 // DeleteResult represents the result of a delete operation. To extract the
@@ -237,6 +246,9 @@
 // a map of headers, call the ExtractHeader method on the DeleteResult.
 func (dr DeleteResult) Extract() (DeleteHeader, error) {
 	var dh DeleteHeader
+	if dr.Err != nil {
+		return dh, dr.Err
+	}
 
 	if err := mapstructure.Decode(dr.Header, &dh); err != nil {
 		return dh, err