package org.shedlang.compiler.backends.targets; import java.util.Arrays; import java.util.List; import java.util.Optional; public enum ShedTarget { AMD64("amd64"), I686("i686"), WASM32("wasm32"), WASM64("wasm64"), PATIO_NATIVE_C_HEADERS("patio-native-c-headers"), PATIO_TEXT("patio-text"), SHID_TEXT("shid-text"); public static List targetNames() { return Arrays.stream(ShedTarget.class.getEnumConstants()) .map(ShedTarget::targetName) .toList(); } public static Optional fromString(String targetName) { for (var target : ShedTarget.class.getEnumConstants()) { if (target.targetName.equals(targetName)) { return Optional.of(target); } } return Optional.empty(); } private final String targetName; ShedTarget(String targetName) { this.targetName = targetName; } public String targetName() { return targetName; } }