Also, I take it all the fields in the structs are Options? I'm guessing that in javascript one of them would have had undefineds or something that the merge would have just ignored?
All are Options with the exception of a few bools.
I had to make --password a bool because when it was an Option, structopt wanted me to pass a value, and I am taking no value and instead reading in a value with dialoguer.
Javascript will override any values to the left with any values to the right. I was originally trying to do something similar where passed values override stored values which override default values.
I was actually just now trying to implement a merge method, and to be honest it wasn't going so well. Your rust playground link helped fill in the blanks. Thank you so much!