import * as tsplus_module_1 from "@tsplus/stdlib/collections/HashSet/union";
import * as tsplus_module_2 from "@effect/core/io/Metrics/definition";
/**
 * Returns a new metric, which is identical in every way to this one, except
 * the specified tags have been added to the tags of this metric.
 *
 * @tsplus fluent ets/Metrics/Metric taggedWithLabelSet
 */

export function taggedWithLabelSet_(self, extraTags) {
  return tsplus_module_2.Metric(self.keyType, (input, extraTags1) => self.unsafeUpdate(input, tsplus_module_1.union_(extraTags, extraTags1)), extraTags1 => self.unsafeValue(tsplus_module_1.union_(extraTags, extraTags1)));
}
/**
 * Returns a new metric, which is identical in every way to this one, except
 * the specified tags have been added to the tags of this metric.
 *
 * @tsplus static ets/Metrics/Metric/Aspects taggedWithLabelSet
 */

export const taggedWithLabelSet = extraTags => self => taggedWithLabelSet_(self, extraTags);
//# sourceMappingURL=taggedWithLabelSet.mjs.map