pub async fn connect_map<A, F>(
        context: SharedContext,
        svr_cfg: &ServerConfig,
        addr: A,
        map_fn: F,
    ) -> io::Result<Self>
    where
        A: Into<Address>,
        F: FnOnce(OutboundTcpStream) -> S,
    {
        Self::connect_with_opts_map(context, svr_cfg, addr, &DEFAULT_CONNECT_OPTS, map_fn).await
    }
Connect to target `addr` via shadowsocks' server configured by `svr_cfg`, maps `TcpStream` to customized stream with `map_fn`
crates/shadowsocks/src/relay/tcprelay/proxy_stream/client.rs