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

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class CompositeRetrievalMode(str, enum.Enum):
    """
    Enum for the mode of composite retrieval.
    """

    ROUTING = "routing"
    FULL = "full"

    def visit(self, routing: typing.Callable[[], T_Result], full: typing.Callable[[], T_Result]) -> T_Result:
        if self is CompositeRetrievalMode.ROUTING:
            return routing()
        if self is CompositeRetrievalMode.FULL:
            return full()
