# shellcheck shell=dash

___x_cmd_pidid_seq(){
    local op="$1"
    case "$op" in
        init|gen|gen_|inc)
            shift
            "___x_cmd_pidid_seq_${op}" "$@" ;;
        *)
            ___x_cmd_pidid_seq_gen_ "$@" ;;
    esac
}

___x_cmd_pidid_seq_init(){
    ___x_cmd_pidid_seq_initdate=$(x date varname)
    ___x_cmd_pidid_seq_id=0
}

___x_cmd_pidid_seq_gen(){
    local ___X_CMD_PIDID_SEQ_GEN_
    ___x_cmd_pidid_seq_gen_ "$@"
    printf "%s\n" "$___X_CMD_PIDID_SEQ_GEN_"
}

___x_cmd_pidid_seq_gen_(){
    ___X_CMD_PIDID_SEQ_GEN_="${___x_cmd_pidid_seq_initdate}.$$.${___x_cmd_pidid_seq_id}"
    _x=$___X_CMD_PIDID_SEQ_GEN_
    ___x_cmd_pidid_seq_inc "${1:-1}"
}

___x_cmd_pidid_seq_inc(){
    ___x_cmd_pidid_seq_id=$((___x_cmd_pidid_seq_id + ${1:?Provide number}))
}
