impl

Imports

Imports #

"strings"

Constants & Variables

allImplementations var #

var allImplementations []implementation

Structs

implementation struct #

type implementation struct {
Package string
Name string
Available bool
Toggle *bool
}

Functions

List function #

List returns the names of all alternative implementations registered for the given package, whether available or not. The implicit base implementation is not included.

func List(pkg string) []string

Register function #

Register records an alternative implementation of a cryptographic primitive. The implementation might be available or not based on CPU support. If available is false, the implementation is unavailable and can't be tested on this machine. If available is true, it can be set to false to disable the implementation. If all alternative implementations but one are disabled, the remaining one must be used (i.e. disabling one implementation must not implicitly disable any other). Each package has an implicit base implementation that is selected when all alternatives are unavailable or disabled. pkg must be the package name, not path (e.g. "aes" not "crypto/aes").

func Register(pkg string, name string, available *bool)

Reset function #

func Reset(pkg string)

Select function #

Select disables all implementations for the given package except the one with the given name. If name is empty, the base implementation is selected. It returns whether the selected implementation is available.

func Select(pkg string, name string) bool

available function #

func available(pkg string, name string) bool

Generated with Arrow