func MergeEncryptOptions(opts ...*EncryptOptions) *EncryptOptions {
	eo := Encrypt()
	for _, opt := range opts {
		if opt == nil {
			continue
		}
		if opt.KeyID != nil {
			eo.KeyID = opt.KeyID
		}
		if opt.KeyAltName != nil {
			eo.KeyAltName = opt.KeyAltName
		}
		if opt.Algorithm != "" {
			eo.Algorithm = opt.Algorithm
		}
	}
	return eo
}
MergeEncryptOptions combines the argued EncryptOptions in a last-one wins fashion.
package options
import (
	"go.mongodb.org/mongo-driver/bson/primitive"
)
type EncryptOptions struct {
	KeyID      *primitive.Binary
	KeyAltName *string
	Algorithm  string
}
func Encrypt() *EncryptOptions {
	return &EncryptOptions{}
}
func (e *EncryptOptions) SetKeyID(keyID primitive.Binary) *EncryptOptions {
	e.KeyID = &keyID
	return e
}
func (e *EncryptOptions) SetKeyAltName(keyAltName string) *EncryptOptions {
	e.KeyAltName = &keyAltName
	return e
}
func (e *EncryptOptions) SetAlgorithm(algorithm string) *EncryptOptions {
	e.Algorithm = algorithm
	return e
}