import textwrap


def _wrap_column_doc(
    *,
    doc: str,
    first_wrapper: textwrap.TextWrapper,
    remaining_wrapper: textwrap.TextWrapper,
    line_separator: str,
) -> str:
    """
    Calculate the documentation for a column.

    Args:
        doc: The documentation string for the column.
        first_wrapper: The text wrapper to use for the first line.
        remaining_wrapper: The wrapper to use for all remaining lines.
        line_separator: The string to use between lines.

    Returns:
        The documentation for the column.

    """
    # Wrapping and joining
    wrapped_doc = first_wrapper.wrap(doc)
    if len(wrapped_doc) > 1:
        remaining_doc = " ".join(wrapped_doc[1:])
        remaining_doc_wrapped = remaining_wrapper.wrap(remaining_doc)
        wrapped_doc = [wrapped_doc[0]] + remaining_doc_wrapped
    return line_separator.join(wrapped_doc)