class Params {

    @NonNull
    public static <S extends IConfig, X extends Enum<X>> IParam<S, X> onEnum(@NonNull X defaultValue, @NonNull String key) {
        Class<X> enumClass = (Class<X>) defaultValue.getClass();
        return new SingleParam<>(defaultValue, key, Parsers.enumParser(enumClass), Formatters.<X>enumFormatter());
    }

    private  Params();

}