override def merge()

in storehaus-memcache/src/main/scala/com/twitter/storehaus/memcache/MemcacheLongStore.scala [62:72]


  override def merge(kv: (String, Long)): Future[Option[Long]] = {
    val (k, v) = kv
    underlying.client.incr(k, v).flatMap {
      case Some(res) => Future.value(Some(res - v)) // value before
      case None => // memcache does not create on increment
        underlying
          .client
          .add(k, v.as[Buf])
          .flatMap { b => if (b) Future.value(None) else merge(kv) }
    }
  }