def METHOD_NAME(stream):
    """Read the Element Size
    :param stream: file-like object from which to read
    :raise ReadError: when not all the required bytes could be read
    :return: the size of element's data
    :rtype: int
    """
    char = _read(stream, 1)
    byte = ord(char)
    if byte & 0x80:
        return unpack('>B', bytes((byte ^ 0x80,)))[0]
    elif byte & 0x40:
        return unpack('>H', bytes((byte ^ 0x40,)) + _read(stream, 1))[0]
    elif byte & 0x20:
        b, h = unpack('>BH', bytes((byte ^ 0x20,)) + _read(stream, 2))
        return b * 2 ** 16 + h
    elif byte & 0x10:
        return unpack('>L', bytes((byte ^ 0x10,)) + _read(stream, 3))[0]
    elif byte & 0x08:
        b, l = unpack('>BL', bytes((byte ^ 0x08,)) + _read(stream, 4))
        return b * 2 ** 32 + l
    elif byte & 0x04:
        h, l = unpack('>HL', bytes((byte ^ 0x04,)) + _read(stream, 5))
        return h * 2 ** 32 + l
    elif byte & 0x02:
        b, h, l = unpack('>BHL', bytes((byte ^ 0x02,)) + _read(stream, 6))
        return b * 2 ** 48 + h * 2 ** 32 + l
    elif byte & 0x01:
        return unpack('>Q', bytes((byte ^ 0x01,)) + _read(stream, 7))[0]
    else:
        ValueError('Not an Element Size')