public static <T> Set<T> copyOf(Collection<? extends T> values) {
        return values.isEmpty() ? Collections.emptySet() : Collections.unmodifiableSet(new HashSet<>(values));
    }
Creates an immutable copy of the given set.

@param values The collection to make an immutable set of.
@param <T> the Set's value type.
@return An immutable Set copy.
smithy-utils/src/main/java/software/amazon/smithy/utils/SetUtils.java