func ExtractVolumeTypes(page pagination.Page) ([]VolumeType, error) {
	var response struct {
		VolumeTypes []VolumeType `mapstructure:"volume_types"`
	}
	err := mapstructure.Decode(page.(ListResult).Body, &response)
	return response.VolumeTypes, err
}
ExtractVolumeTypes extracts and returns Volume Types.
package volumetypes
import (
	"github.com/mitchellh/mapstructure"
	"github.com/rackspace/gophercloud"
	"github.com/rackspace/gophercloud/pagination"
)
type VolumeType struct {
	ExtraSpecs map[string]interface{} `json:"extra_specs" mapstructure:"extra_specs"`  
	ID         string                 `json:"id" mapstructure:"id"`                    
	Name       string                 `json:"name" mapstructure:"name"`                
}
type CreateResult struct {
	commonResult
}
type GetResult struct {
	commonResult
}
type DeleteResult struct {
	gophercloud.ErrResult
}
type ListResult struct {
	pagination.SinglePageBase
}
func (r ListResult) IsEmpty() (bool, error) {
	volumeTypes, err := ExtractVolumeTypes(r)
	if err != nil {
		return true, err
	}
	return len(volumeTypes) == 0, nil
}