Documentation ¶
Index ¶
- Variables
- func BindContext[A any](ctx context.Context, f func(context.Context) A) func() A
- func BindContext2[A, B any](ctx context.Context, f func(context.Context) (A, B)) func() (A, B)
- func DecodeStruct[T any](input interface{}) (*T, error)
- func DeepCopy[T any](in *T) *T
- func DeepCopyInto[T any](out, in *T)
- func DialProtocol(ctx context.Context, addr string) (net.Conn, error)
- func GenerateRandomString(length int) []byte
- func HashString(s string) uint64
- func HashStrings(strings []string) string
- func Indexed[T any, U any](f func(T) U) func(T, int) U
- func IsInterfaceNil(i interface{}) bool
- func LoadClientMTLSConfig(certs *v1beta1.MTLSSpec) (*tls.Config, error)
- func LoadServingCertBundle(certsSpec v1beta1.CertsSpec) (*tls.Certificate, *x509.CertPool, error)
- func Must[T any](t T, err ...error) T
- func NewProtocolListener(addr string) (net.Listener, error)
- func ParsePEMEncodedCert(data []byte) (*x509.Certificate, error)
- func ParsePEMEncodedCertChain(chain []byte) ([]*x509.Certificate, error)
- func ProtoClone[T proto.Message](msg T) T
- func ReadString(r io.Reader) string
- func RemoveFirstOccurence[S ~[]T, T comparable](items S, remove T) S
- func ReplaceFirstOccurrence[S ~[]T, T comparable](items S, old T, new T) S
- func ServeHandler(ctx context.Context, handler http.Handler, listener net.Listener) error
- func StatusCode(err error) codes.Code
- func StatusError(code codes.Code) error
- func WaitAll(ctx context.Context, ca context.CancelFunc, channels ...<-chan error) error
- func WithHttpMaxAgeCachingHeader(h http.Header, maxAge time.Duration)
- func WithHttpNoCachingHeader(h http.Header)
- func WithHttpNoStoreHeader(h http.Header)
- type DelimiterCodec
- type HttpCachingTransport
- type Initializer
- type InternalHttpCachingTransport
- type LockMap
- type ServicePack
- type ServicePackInterface
Constants ¶
This section is empty.
Variables ¶
var ErrUnsupportedProtocolScheme = errors.New("unsupported protocol scheme")
Functions ¶
func BindContext ¶ added in v0.5.4
func BindContext2 ¶ added in v0.5.4
func DecodeStruct ¶ added in v0.4.1
func DeepCopyInto ¶ added in v0.4.1
func DeepCopyInto[T any](out, in *T)
func DialProtocol ¶ added in v0.5.4
func GenerateRandomString ¶ added in v0.3.1
func HashString ¶ added in v0.8.3
func HashStrings ¶ added in v0.8.3
func Indexed ¶ added in v0.6.0
Used with lo.Map to wrap functions that do not take an index argument
func IsInterfaceNil ¶ added in v0.5.4
func IsInterfaceNil(i interface{}) bool
func LoadClientMTLSConfig ¶ added in v0.4.1
func LoadServingCertBundle ¶ added in v0.4.1
func NewProtocolListener ¶ added in v0.4.1
func ParsePEMEncodedCert ¶ added in v0.4.1
func ParsePEMEncodedCert(data []byte) (*x509.Certificate, error)
func ParsePEMEncodedCertChain ¶ added in v0.4.1
func ParsePEMEncodedCertChain(chain []byte) ([]*x509.Certificate, error)
func ProtoClone ¶ added in v0.5.4
func ReadString ¶ added in v0.6.0
func RemoveFirstOccurence ¶ added in v0.7.0
func RemoveFirstOccurence[S ~[]T, T comparable](items S, remove T) S
func ReplaceFirstOccurrence ¶ added in v0.7.0
func ReplaceFirstOccurrence[S ~[]T, T comparable](items S, old T, new T) S
func ServeHandler ¶ added in v0.6.0
ServeHandler serves a http.Handler with the given listener. If the context is canceled, the server will be closed.
func StatusCode ¶ added in v0.5.4
Like status.Code(), but supports wrapped errors.
func StatusError ¶ added in v0.5.4
func WaitAll ¶ added in v0.6.0
WaitAll waits for all the given channels to be closed, under the following rules: 1. The lifetime of the task represented by each channel is directly tied to the provided context. 2. If a task exits with an error before the context is canceled, the context should be canceled. 3. If a task exits successfully, the context should not be canceled and other tasks should continue to run.
func WithHttpMaxAgeCachingHeader ¶ added in v0.8.3
WithHttpMaxAgeCachingHeader : header in the request or response that indicates the transport should set the value in the cache with ttl specified by maxAge
func WithHttpNoCachingHeader ¶ added in v0.8.3
WithHttpNoCachingHeader : header in the request or response that indicates the transport should skip the cache
func WithHttpNoStoreHeader ¶ added in v0.8.3
WithHttpNoStoreHeader : header in the request or response that indicates the response should not be stored in the cache
Types ¶
type DelimiterCodec ¶ added in v0.4.1
type DelimiterCodec struct {
// contains filtered or unexported fields
}
Implements rbac.Codec
func NewDelimiterCodec ¶ added in v0.4.1
func NewDelimiterCodec(key string, delimiter string) DelimiterCodec
func (DelimiterCodec) Decode ¶ added in v0.4.1
func (d DelimiterCodec) Decode(s string) []string
func (DelimiterCodec) Encode ¶ added in v0.4.1
func (d DelimiterCodec) Encode(ids []string) string
func (DelimiterCodec) Key ¶ added in v0.4.1
func (d DelimiterCodec) Key() string
type HttpCachingTransport ¶ added in v0.8.3
type HttpCachingTransport interface { http.RoundTripper storage.HttpTtlCache Use(*http.Client) error }
HttpCachingTransport
!! Client libraries that use a *http.Client may overwrite the transport so you may want to consider using this interface with something like https://github.com/hashicorp/go-cleanhttp
type Initializer ¶ added in v0.6.0
type Initializer struct {
// contains filtered or unexported fields
}
func (*Initializer) InitOnce ¶ added in v0.6.0
func (i *Initializer) InitOnce(f func())
func (*Initializer) Initialized ¶ added in v0.6.0
func (i *Initializer) Initialized() bool
func (*Initializer) WaitForInit ¶ added in v0.6.0
func (i *Initializer) WaitForInit()
func (*Initializer) WaitForInitContext ¶ added in v0.6.0
func (i *Initializer) WaitForInitContext(ctx context.Context) error
type InternalHttpCachingTransport ¶ added in v0.8.3
type InternalHttpCachingTransport struct { *httpcache.Transport storage.HttpTtlCache }
InternalHttpCachingTransport Mostly RFC7234 compliant, see https://pkg.go.dev/github.com/gregjones/httpcache Should be used for internal caching only, not for LB, proxying, etc.
func NewInternalHttpCacheTransport ¶ added in v0.8.3
func NewInternalHttpCacheTransport(cache storage.HttpTtlCache) *InternalHttpCachingTransport
type LockMap ¶ added in v0.5.4
type LockMap[K comparable, L sync.Locker] interface { Get(key K) L Delete(key K) }
func NewLockMap ¶ added in v0.5.4
func NewLockMap[K comparable, L locker[T], T any]() LockMap[K, L]
type ServicePack ¶ added in v0.5.4
type ServicePack[T any] struct { // contains filtered or unexported fields }
func PackService ¶ added in v0.5.4
func PackService[T any](desc *grpc.ServiceDesc, impl T) ServicePack[T]
func (ServicePack[T]) Unpack ¶ added in v0.5.4
func (s ServicePack[T]) Unpack() (*grpc.ServiceDesc, any)
type ServicePackInterface ¶ added in v0.6.0
type ServicePackInterface interface {
Unpack() (*grpc.ServiceDesc, any)
}