message: Move add into Service
diff: @@ -127,19 +127,7 @@ impl Display for Verb {
  pub trait ServiceExt {
  type Output: Future<Output = Result<Service, crate::Error>>;
  - fn add_service(&self, config: Config) -> Self::Output;
  -}
  -
  -impl ServiceExt for crate::Client {
  - type Output = Pin<Box<dyn Future<Output = Result<Service, crate::Error>>>>;
  -
  - fn add_service(&self, config: Config) -> Self::Output {
  - let client = self.clone();
  - Box::pin(async { add(client, config).await })
  - }
  -}
  -
  -/// Service instance.
  + /// Adds a Service instance.
  ///
  /// # Examples
  ///
  @@ -164,18 +152,19 @@ impl ServiceExt for crate::Client {
  /// # Ok(())
  /// # }
  /// ```
  -#[derive(Debug)]
  -pub struct Service {
  - stats: Arc<Mutex<Stats>>,
  - info: Info,
  - client: Client,
  - requests: Subscriber,
  - handle: JoinHandle<Result<(), Error>>,
  + fn add_service(&self, config: Config) -> Self::Output;
  }
  -/// Adds a new instance of the service.
  -/// Every service with the same name scales horizontally.
  -/// Services have their API for retrieving [StatsResponse], [Info], [Schema] and [Ping][Verb::Ping].
  +impl ServiceExt for crate::Client {
  + type Output = Pin<Box<dyn Future<Output = Result<Service, crate::Error>>>>;
  +
  + fn add_service(&self, config: Config) -> Self::Output {
  + let client = self.clone();
  + Box::pin(async { Service::add(client, config).await })
  + }
  +}
  +
  +/// Service instance.
  ///
  /// # Examples
  ///
  @@ -200,6 +189,15 @@ pub struct Service {
  /// # Ok(())
  /// # }
  /// ```
  +#[derive(Debug)]
  +pub struct Service {
  + stats: Arc<Mutex<Stats>>,
  + info: Info,
  + client: Client,
  + requests: Subscriber,
  + handle: JoinHandle<Result<(), Error>>,
  +}
  +impl Service {
  async fn add(client: Client, config: Config) -> Result<Service, Error> {
  let id = nuid::next();
  let started = time::OffsetDateTime::now_utc();
  @@ -304,7 +302,7 @@ async fn add(client: Client, config: Config) -> Result<Service, Error> {
  handle,
  })
  }
  -
  +}
  async fn verb_subscription(
  client: Client,
  verb: Verb,
  