import * as tsplus_module_1 from "@tsplus/stdlib/data/Tuple/make";
import * as tsplus_module_2 from "@effect/core/io/Metrics/definition";
/**
 * @tsplus fluent ets/Metrics/Metric zip
 */

export function zip_(self, that) {
  return tsplus_module_2.Metric(tsplus_module_1.make(self.keyType, that.keyType), (input, extraTags) => {
    const {
      tuple: [l, r]
    } = input;
    self.unsafeUpdate(l, extraTags);
    that.unsafeUpdate(r, extraTags);
  }, extraTags => tsplus_module_1.make(self.unsafeValue(extraTags), that.unsafeValue(extraTags)));
}
/**
 * @tsplus static ets/Metrics/Metric/Aspects zip
 */

export const zip = that => self => zip_(self, that);
//# sourceMappingURL=zip.mjs.map