def METHOD_NAME(self, b):
    """
    Eat one UTF-8 octet, and validate on the fly.
    Returns UTF8_ACCEPT when enough octets have been consumed, in which case
    self.codepoint contains the decoded Unicode code point.
    Returns UTF8_REJECT when invalid UTF-8 was encountered.
    Returns some other positive integer when more octets need to be eaten.
    """
    type = Utf8Validator.UTF8VALIDATOR_DFA[b]
    if self.state != Utf8Validator.UTF8_ACCEPT:
        self.codepoint = (b & 0x3f) | (self.codepoint << 6)
    else:
        self.codepoint = (0xff >> type) & b
    self.state = Utf8Validator.UTF8VALIDATOR_DFA[256 + self.state * 16 + type]
    return self.state