func (r SubnetPage) NextPageURL() (string, error) {
	var s struct {
		Links []gophercloud.Link `json:"subnets_links"`
	}
	err := r.ExtractInto(&s)
	if err != nil {
		return "", err
	}
	return gophercloud.ExtractNextURL(s.Links)
}
NextPageURL is invoked when a paginated collection of subnets has reached
the end of a page and the pager seeks to traverse over a new one. In order
to do this, it needs to construct the next page's URL.
package subnets
import (
	"github.com/gophercloud/gophercloud"
	"github.com/gophercloud/gophercloud/pagination"
)
type commonResult struct {
	gophercloud.Result
}
func (r commonResult) Extract() (*Subnet, error) {
	var s struct {
		Subnet *Subnet `json:"subnet"`
	}
	err := r.ExtractInto(&s)
	return s.Subnet, err
}
type CreateResult struct {
	commonResult
}
type GetResult struct {
	commonResult
}
type UpdateResult struct {
	commonResult
}
type DeleteResult struct {
	gophercloud.ErrResult
}
type AllocationPool struct {
	Start string `json:"start"`
	End   string `json:"end"`
}
type HostRoute struct {
	DestinationCIDR string `json:"destination"`
	NextHop         string `json:"nexthop"`
}
type Subnet struct {
	ID string `json:"id"`
	NetworkID string `json:"network_id"`
	Name string `json:"name"`
	IPVersion int `json:"ip_version"`
	CIDR string `json:"cidr"`
	GatewayIP string `json:"gateway_ip"`
	DNSNameservers []string `json:"dns_nameservers"`
	AllocationPools []AllocationPool `json:"allocation_pools"`
	HostRoutes []HostRoute `json:"host_routes"`
	EnableDHCP bool `json:"enable_dhcp"`
	TenantID string `json:"tenant_id"`
}
type SubnetPage struct {
	pagination.LinkedPageBase
}