public HealthStatsMetrics diff()

in metrics/src/main/java/com/facebook/battery/metrics/healthstats/HealthStatsMetrics.java [149:173]


  public HealthStatsMetrics diff(
      @Nullable HealthStatsMetrics b, @Nullable HealthStatsMetrics output) {
    if (output == null) {
      output = new HealthStatsMetrics();
    }
    output.dataType = dataType;

    if (b == null || compareSnapshotAge(this, b) < 0 /* short circuit if healthstats reset */) {
      output.set(this);
    } else if (!strEquals(b.dataType, dataType)) {
      throw new IllegalArgumentException(
          "Attempting to subtract different types of HealthStatMetrics: "
              + dataType
              + " and "
              + b.dataType);
    } else {
      op(OP_DIFF, measurement, b.measurement, output.measurement);
      op(OP_DIFF, measurements, b.measurements, output.measurements);
      op(OP_DIFF, timer, b.timer, output.timer);
      op(OP_DIFF, timers, b.timers, output.timers);
      op(OP_DIFF, stats, b.stats, output.stats);
    }

    return output;
  }