@classmethod
def parse(cls, payload: str, encoding: Encoding) -> Union[(Number, ExtensionResultItem)]:
    if (len(payload) == 0):
        return ExtensionResultItem(icon='images/icon.png', name='No input', description=f'Please input a {encoding} number', on_enter=DoNothingAction())
    try:
        value = encoding.decode(payload)
        return Number(value)
    except ValueError:
        msg = 'Failed to convert number'
        description = f'Value {payload} is not a {encoding} number.'
        return ExtensionResultItem(icon='images/icon.png', name=msg, description=description, on_enter=DoNothingAction(), on_alt_enter=DoNothingAction())
@classmethod
def parse(cls, payload: str, encoding: Encoding) -> Union[(Number, ExtensionResultItem)]:
    if (len(payload) == 0):
        return ExtensionResultItem(icon='images/icon.png', name='No input', description=f'Please input a {encoding} number', on_enter=DoNothingAction())
    try:
        value = encoding.decode(payload)
        return Number(value)
    except ValueError:
        msg = 'Failed to convert number'
        description = f'Value {payload} is not a {encoding} number.'
        return ExtensionResultItem(icon='images/icon.png', name=msg, description=description, on_enter=DoNothingAction(), on_alt_enter=DoNothingAction())