def prefix(start_text: str):
    """
    Return a function that checks a message for prefix

    The returned function will check to see if it starts with the provided text. If it does, it will return an index
    for when the message actually starts. For example, if the prefix was py! and the message was py!help, it would
    return 3 because `'py!help'[3:]` is the message without the prefix, which is used by the client.

    :param start_text: The text that should act as a prefix
    :type start_text: str
    :return: A function described above
    :rtype: Callable
    """
    def checker(msg):
        if msg.content.startswith(start_text):
            return len(start_text)
    return checker