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

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class ClientFacingNoteSampleTagsItem(str, enum.Enum):
    FOOD = "food"
    EXERCISE = "exercise"
    INSULIN_INJECTION = "insulin_injection"
    UNSPECIFIED = "unspecified"

    def visit(
        self,
        food: typing.Callable[[], T_Result],
        exercise: typing.Callable[[], T_Result],
        insulin_injection: typing.Callable[[], T_Result],
        unspecified: typing.Callable[[], T_Result],
    ) -> T_Result:
        if self is ClientFacingNoteSampleTagsItem.FOOD:
            return food()
        if self is ClientFacingNoteSampleTagsItem.EXERCISE:
            return exercise()
        if self is ClientFacingNoteSampleTagsItem.INSULIN_INJECTION:
            return insulin_injection()
        if self is ClientFacingNoteSampleTagsItem.UNSPECIFIED:
            return unspecified()
