# This file was auto-generated by Fern from our API Definition.

import typing

from ..core import enum

T_Result = typing.TypeVar("T_Result")


class FiddlerGuardType(enum.StrEnum):
    FIDDLER_SAFETY = "fiddler-safety"
    FIDDLER_RESPONSE_FAITHFULNESS = "fiddler-response-faithfulness"

    def visit(
        self,
        fiddler_safety: typing.Callable[[], T_Result],
        fiddler_response_faithfulness: typing.Callable[[], T_Result],
    ) -> T_Result:
        if self is FiddlerGuardType.FIDDLER_SAFETY:
            return fiddler_safety()
        if self is FiddlerGuardType.FIDDLER_RESPONSE_FAITHFULNESS:
            return fiddler_response_faithfulness()
