pub async fn secure_run_with_options<B, R, W>(
    shim: B,
    writer: W,
    opts: IntermediaryOptions,
    tls_config: Arc<ServerConfig>,
    init_params: (ClientHandshake, u8, CapabilityFlags, PacketReader<R>)
) -> Result<(), B::Error>where
    B: AsyncMysqlShim<WriteHalf<TlsStream<Duplex<PacketReader<R>, W>>>> + Send + Sync,
    R: AsyncRead + Send + Unpin,
    W: AsyncWrite + Send + Unpin,