github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/networking/v2/extensions/delegate.go (about)

     1  package extensions
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/vnpaycloud-console/gophercloud/v2"
     7  	common "github.com/vnpaycloud-console/gophercloud/v2/openstack/common/extensions"
     8  	"github.com/vnpaycloud-console/gophercloud/v2/pagination"
     9  )
    10  
    11  // Extension is a single OpenStack extension.
    12  type Extension struct {
    13  	common.Extension
    14  }
    15  
    16  // GetResult wraps a GetResult from common.
    17  type GetResult struct {
    18  	common.GetResult
    19  }
    20  
    21  // ExtractExtensions interprets a Page as a slice of Extensions.
    22  func ExtractExtensions(page pagination.Page) ([]Extension, error) {
    23  	inner, err := common.ExtractExtensions(page)
    24  	if err != nil {
    25  		return nil, err
    26  	}
    27  	outer := make([]Extension, len(inner))
    28  	for index, ext := range inner {
    29  		outer[index] = Extension{ext}
    30  	}
    31  	return outer, nil
    32  }
    33  
    34  // Get retrieves information for a specific extension using its alias.
    35  func Get(ctx context.Context, c *gophercloud.ServiceClient, alias string) GetResult {
    36  	return GetResult{common.Get(ctx, c, alias)}
    37  }
    38  
    39  // List returns a Pager which allows you to iterate over the full collection of extensions.
    40  // It does not accept query parameters.
    41  func List(c *gophercloud.ServiceClient) pagination.Pager {
    42  	return common.List(c)
    43  }