// Copyright 2017 David Ackroyd. All Rights Reserved. // See LICENSE for licensing terms. package grpc_recovery var ( defaultOptions = &options{ recoveryHandlerFunc: nil, } ) type options struct { recoveryHandlerFunc RecoveryHandlerFunc } func evaluateOptions(opts []Option) *options { optCopy := &options{} *optCopy = *defaultOptions for _, o := range opts { o(optCopy) } return optCopy } type Option func(*options) // WithRecoveryHandler customizes the function for recovering from a panic. func WithRecoveryHandler(f RecoveryHandlerFunc) Option { return func(o *options) { o.recoveryHandlerFunc = f } }