Storing STRUCT in EEPROM?

It does exist. Just read the cell and compare with the value that you want to store; if it differs, write the new value, else do nothing.

That's the principle used in EEPROM.h (ArduinoCore-avr/EEPROM.h at master · arduino/ArduinoCore-avr · GitHub) as far as this untrained C++ programmer can see.