Interface GuardrailResult

All Known Implementing Classes:
GuardrailResult.Blocked, GuardrailResult.Modified, GuardrailResult.Passed

public sealed interface GuardrailResult permits GuardrailResult.Passed, GuardrailResult.Modified, GuardrailResult.Blocked
Result produced by a guardrail evaluation.

Three mutually exclusive outcomes are modeled as records inside this sealed interface, enabling exhaustive switch expressions with full compiler enforcement (Java 21+):


 GuardrailResult result = guardrail.apply(input, ctx).join();
 String output = switch (result) {
     case GuardrailResult.Passed p   -> input;
     case GuardrailResult.Modified m -> m.newContent();
     case GuardrailResult.Blocked  b -> throw new GuardrailViolationException(b.reason(), "...");
 };
 
Since:
0.13.0
See Also: