• balsoft@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    2 days ago

    You decrement the wish counter first, execute the action (which includes waiting those 5 days), and if it fails you increment the counter back. Something like this:

    wishes = wishes - 1;
    executeWish(wish).unwrap_or_else(|_| { wishes = wishes + 1; })?
    

    This way if the action fails in the future, you get a wish back and can ask something else.