func (c *Client) Authenticate(ctx context.Context, a interface{}) error {
	if auth, ok := c.driverClient.(driver.Authenticator); ok {
		return auth.Authenticate(ctx, a)
	}
	return errors.Status(StatusNotImplemented, "kivik: driver does not support authentication")
}
// Authenticate authenticates the client with the passed authenticator, which
// is driver-specific. If the driver does not understand the authenticator, an
// error will be returned.
Authenticate authenticates the client with the passed authenticator, which
is driver-specific. If the driver does not understand the authenticator, an
error will be returned.
// Authenticate authenticates the client with the passed authenticator which // is driver - specific . If the driver does not understand the authenticator an // error will be returned .
func (c *Client) Authenticate(ctx context.Context, a interface{}) error {
	if auth, ok := c.driverClient.(driver.Authenticator); ok {
		return auth.Authenticate(ctx, a)
	}
	return errors.Status(StatusNotImplemented, "kivik: driver does not support authentication")
}
func ( c * Client ) Authenticate ( ctx context . Context , a interface { } ) error { if auth , ok := c . driverClient . ( driver . Authenticator ) ; ok { return auth . Authenticate ( ctx , a ) } return errors . Status ( StatusNotImplemented , " " ) }
Authenticate authenticates the client with the passed authenticator, which
is driver-specific.
Authenticate authenticates the client with the passed authenticator which is driver - specific .