pub(crate) async fn serve<G, C, R>(
    config: ServeConfig,
    _server: Server,
    client: G
) -> Result<(), Error> where
    G: GenericClient<C, R>,
    C: DeserializeOwned + Debug + Send + Unpin,
    R: Serialize + Debug + Send + Unpin