mirror of
https://github.com/chatmail/core.git
synced 2026-04-06 07:32:12 +03:00
This changes the type of ConfigItem::Selfavatar to a BlobObject. This is what also happened on master because there was a bug with how selfavatar was not being correctly handled as a blob. As a side-effect this also adds a lifetime to the ConfigItem object. This resulted in some strum derives no longer working which in itself resulted in some simplifications between ConfigKey and ConfigItem: ConfigKey::to_key_string & ConfigKey::from_key_string are used to create the SQL keynames. The ConfigItem is converted to its ConfigKey discriminant in the SQL write path which avoids the duplicate source for SQL keyname. FFI-level tests are added for testing the copy behaviour since that is now effectively a problem of the FFI, in Rust this is impossible to have thanks to the types.