func ExtractVolumeAttachments(page pagination.Page) ([]VolumeAttachment, error) {
	casted := page.(VolumeAttachmentsPage).Body
	var response struct {
		VolumeAttachments []VolumeAttachment `mapstructure:"volumeAttachments"`
	}
	err := mapstructure.WeakDecode(casted, &response)
	return response.VolumeAttachments, err
}
ExtractVolumeAttachments interprets a page of results as a slice of
VolumeAttachments.
package volumeattach
import (
	"github.com/mitchellh/mapstructure"
	"github.com/rackspace/gophercloud"
	"github.com/rackspace/gophercloud/pagination"
)
type VolumeAttachment struct {
	ID string `mapstructure:"id"`
	Device string `mapstructure:"device"`
	VolumeID string `mapstructure:"volumeId"`
	ServerID string `mapstructure:"serverId"`
}
type VolumeAttachmentsPage struct {
	pagination.SinglePageBase
}
func (page VolumeAttachmentsPage) IsEmpty() (bool, error) {
	va, err := ExtractVolumeAttachments(page)
	return len(va) == 0, err
}