package dev.elaine.network;

public final class ProtocolDecisionSample {
    private ProtocolDecisionSample() {}

    public enum Need { PUBLIC_API, INTERNAL_RPC, SERVER_PUSH, LOSS_TOLERANT_REALTIME }

    public static String choose(Need need) {
        return switch (need) {
            case PUBLIC_API -> "HTTP/2 + JSON";
            case INTERNAL_RPC -> "gRPC";
            case SERVER_PUSH -> "WebSocket 或 SSE";
            case LOSS_TOLERANT_REALTIME -> "评估基于 QUIC 的协议";
        };
    }

    public static void main(String[] args) {
        for (Need need : Need.values()) {
            System.out.println(need + " -> " + choose(need));
        }
    }
}

