Right, that's a smarter way to share a method.
diff --git a/openstack/compute/v2/servers/results.go b/openstack/compute/v2/servers/results.go
index 8e967f0..29cbf13 100644
--- a/openstack/compute/v2/servers/results.go
+++ b/openstack/compute/v2/servers/results.go
@@ -65,8 +65,12 @@
 	AdminPass string `mapstructure:"adminPass"`
 }
 
-// extractServer interprets the result of a call expected to return data on a single server.
-func extractServer(r gophercloud.CommonResult) (*Server, error) {
+type serverResult struct {
+	gophercloud.CommonResult
+}
+
+// Extract interprets any serverResult as a Server, if possible.
+func (r serverResult) Extract() (*Server, error) {
 	if r.Err != nil {
 		return nil, r.Err
 	}
@@ -81,42 +85,22 @@
 
 // CreateResult temporarily contains the response from a Create call.
 type CreateResult struct {
-	gophercloud.CommonResult
-}
-
-// Extract interprets a CreateResult as a Server, if possible.
-func (r CreateResult) Extract() (*Server, error) {
-	return extractServer(r.CommonResult)
+	serverResult
 }
 
 // GetResult temporarily contains the response from a Get call.
 type GetResult struct {
-	gophercloud.CommonResult
-}
-
-// Extract interprets a GetResult as a Server, if possible.
-func (r GetResult) Extract() (*Server, error) {
-	return extractServer(r.CommonResult)
+	serverResult
 }
 
 // UpdateResult temporarily contains the response from an Update call.
 type UpdateResult struct {
-	gophercloud.CommonResult
-}
-
-// Extract interprets an UpdateResult as a Server, if possible.
-func (r UpdateResult) Extract() (*Server, error) {
-	return extractServer(r.CommonResult)
+	serverResult
 }
 
 // RebuildResult temporarily contains the response from a Rebuild call.
 type RebuildResult struct {
-	gophercloud.CommonResult
-}
-
-// Extract interprets a RebuildResult as a Server, if possible.
-func (r RebuildResult) Extract() (*Server, error) {
-	return extractServer(r.CommonResult)
+	serverResult
 }
 
 // ExtractServers interprets the results of a single page from a List() call, producing a slice of Server entities.