# shellcheck shell=dash

___x_cmd_assert_var(){
    case "$1" in
        save)       shift ; ___x_cmd_assert_var_save "$@" ;;
        cmp)        shift ; ___x_cmd_assert_var_cmp "$@" ;;
        pr|print)   printf "%s\n" "$zzzzzzzzzzzzzzzzzzzzzzzzzzzz" ;;
        # TODO: Add UI
        "")         printf "%s\n" "$zzzzzzzzzzzzzzzzzzzzzzzzzzzz" ;;
        *)          assert:error "Unknown argument for ___x_cmd_assert_var"; return 1
    esac
}

___x_cmd_assert_onelinevar(){
    x set var all | ___x_cmd_cmds_awk -f "$___X_CMD_ROOT_MOD/assert/lib/var.awk"
}

___x_cmd_assert_var_cmp(){
    {
        printf "%s\n" "$zzzzzzzzzzzzzzzzzzzzzzzzzzzz"
        printf "%s\n" "---"
        printf "%s\n" "$(___x_cmd_assert_onelinevar)"
        printf "%s\n" "---"
        local IFS="$___X_CMD_UNSEENCHAR_NEWLINE"
        printf "%s\n" "$*"
    } | ___x_cmd_cmds_awk -f "$___X_CMD_ROOT_MOD/assert/lib/var.cmp.awk"
}

# x assert var save
# x assert var +abc -cde :abc

___x_cmd_assert_var_save(){
    zzzzzzzzzzzzzzzzzzzzzzzzzzzz="$(___x_cmd_assert_onelinevar)"
}
