def for_marqo_index(marqo_index: MarqoIndex) -> VespaIndex:
    """
    Get the VespaIndex implementation for the given MarqoIndex.

    Args:
        marqo_index: The MarqoIndex to get the implementation for
        marqo_version: The version of Marqo that the index was created with

    Returns:
        The VespaIndex implementation for the given MarqoIndex
    """
    if isinstance(marqo_index, SemiStructuredMarqoIndex):
        from marqo.core.semi_structured_vespa_index.semi_structured_vespa_index import SemiStructuredVespaIndex
        return SemiStructuredVespaIndex(marqo_index)
    elif isinstance(marqo_index, StructuredMarqoIndex):
        from marqo.core.structured_vespa_index.structured_vespa_index import StructuredVespaIndex
        return StructuredVespaIndex(marqo_index)
    elif isinstance(marqo_index, UnstructuredMarqoIndex):
        from marqo.core.unstructured_vespa_index.unstructured_vespa_index import UnstructuredVespaIndex
        return UnstructuredVespaIndex(marqo_index)
    else:
        raise ValueError(f"No known implementation for index type {type(marqo_index)}")

    Get the VespaIndex implementation for the given MarqoIndex.

    Args:
        marqo_index: The MarqoIndex to get the implementation for
        marqo_version: The version of Marqo that the index was created with

    Returns:
        The VespaIndex implementation for the given MarqoIndex
    
src/marqo/core/vespa_index/vespa_index.py