pub fn decode( reader: &mut BufReader<TcpStream>, ) -> Pin<Box<dyn Future<Output = Result<Value, String>> + '_>>